本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CreatePredictor
注意
此操作创建传统预测器,该预测器不包含 Amazon Forecast 提供的所有预测器功能。要创建与 Forecast 所有方面兼容的预测器,请使用 CreateAutoPredictor。
创建 Amazon Forecast 预测器。
在该请求中,提供一个数据集组并指定算法,或者让 Amazon Forecast 使用 AutoML 为您选择算法。如果指定算法,您还可以覆盖特定于算法的超参数。
Amazon Forecast 使用该算法采用指定数据集组中最新版本的数据集来训练预测器。然后,您可以使用 CreateForecast 操作生成预测。
要查看评估指标,请使用 GetAccuracyMetrics 操作。
您可以指定特征化配置来填充并聚合 TARGET_TIME_SERIES
数据集中的数据字段,从而改进模型训练。有关更多信息,请参阅 FeaturizationConfig。
对于 RELATED_TIME_SERIES 数据集,CreatePredictor
验证创建数据集时指定的 DataFrequency
是否匹配 ForecastFrequency
。TARGET_TIME_SERIES 数据集没有此限制。Amazon Forecast 还会验证分隔符和时间戳格式。有关更多信息,请参阅 导入数据集。
默认情况下,预测器以 0.1(P10)、0.5(P50)和 0.9 (P90)分位数进行训练和评估。您可以通过设置 ForecastTypes
来选择自定义预测类型来训练和评估预测器。
AutoML
如果您希望 Amazon Forecast 评估每种算法并选择最大限度地减少 objective function
的算法,请设置 PerformAutoML
为 true
。定义 objective function
为预测类型的加权损失均值。默认情况下,这些损失是 p10、p50 和 p90 分位数损失。有关更多信息,请参阅 EvaluationResult。
启用 AutoML 时,不允许使用以下属性:
-
AlgorithmArn
-
HPOConfig
-
PerformHPO
-
TrainingParameters
要获取所有预测器的列表,请使用 ListPredictors 操作。
注意
在使用预测器创建预测之前,预测器的 Status
必须为 ACTIVE
,表示训练已完成。要获取此状态,请使用 DescribePredictor 操作。
请求语法
{
"AlgorithmArn": "string
",
"AutoMLOverrideStrategy": "string
",
"EncryptionConfig": {
"KMSKeyArn": "string
",
"RoleArn": "string
"
},
"EvaluationParameters": {
"BackTestWindowOffset": number
,
"NumberOfBacktestWindows": number
},
"FeaturizationConfig": {
"Featurizations": [
{
"AttributeName": "string
",
"FeaturizationPipeline": [
{
"FeaturizationMethodName": "string
",
"FeaturizationMethodParameters": {
"string
" : "string
"
}
}
]
}
],
"ForecastDimensions": [ "string
" ],
"ForecastFrequency": "string
"
},
"ForecastHorizon": number
,
"ForecastTypes": [ "string
" ],
"HPOConfig": {
"ParameterRanges": {
"CategoricalParameterRanges": [
{
"Name": "string
",
"Values": [ "string
" ]
}
],
"ContinuousParameterRanges": [
{
"MaxValue": number
,
"MinValue": number
,
"Name": "string
",
"ScalingType": "string
"
}
],
"IntegerParameterRanges": [
{
"MaxValue": number
,
"MinValue": number
,
"Name": "string
",
"ScalingType": "string
"
}
]
}
},
"InputDataConfig": {
"DatasetGroupArn": "string
",
"SupplementaryFeatures": [
{
"Name": "string
",
"Value": "string
"
}
]
},
"OptimizationMetric": "string
",
"PerformAutoML": boolean
,
"PerformHPO": boolean
,
"PredictorName": "string
",
"Tags": [
{
"Key": "string
",
"Value": "string
"
}
],
"TrainingParameters": {
"string
" : "string
"
}
}
请求参数
请求接受采用 JSON 格式的以下数据。
- AlgorithmArn
-
用于模型训练的算法的 Amazon 资源名称(ARN)。如果未将
PerformAutoML
设置为true
,则是必需。支持的算法:
-
arn:aws:forecast:::algorithm/ARIMA
-
arn:aws:forecast:::algorithm/CNN-QR
-
arn:aws:forecast:::algorithm/Deep_AR_Plus
-
arn:aws:forecast:::algorithm/ETS
-
arn:aws:forecast:::algorithm/NPTS
-
arn:aws:forecast:::algorithm/Prophet
类型:字符串
长度约束:最大长度为 256。
模式:
arn:([a-z\d-]+):forecast:.*:.*:.+
必需:否
-
- AutoMLOverrideStrategy
-
注意
LatencyOptimized
AutoML 覆盖策略仅在私有测试版中可用。请联系 Su AWS pport 或您的客户经理,详细了解访问权限。用于覆盖默认的 AutoML 策略,即优化预测器的准确性。要应用可最大限度地缩短训练时间的 AutoML 策略,请使用
LatencyOptimized
。此参数仅对使用 AutoML 训练的预测器有效。
类型:字符串
有效值:
LatencyOptimized | AccuracyOptimized
必需:否
- EncryptionConfig
-
一个 AWS Key Management Service (KMS) 密钥和 AWS Identity and Access Management (IAM) 角色,Amazon Forecast 可以代入该密钥访问该密钥。
类型:EncryptionConfig 对象
必需:否
- EvaluationParameters
-
用于覆盖指定算法的默认评估参数。Amazon Forecast 通过将数据集拆分为训练数据和测试数据来评估预测器。评估参数定义了如何执行拆分和迭代次数。
类型:EvaluationParameters 对象
必需:否
- FeaturizationConfig
-
特征化配置。
类型:FeaturizationConfig 对象
必需:是
- ForecastHorizon
-
指定训练模型来预测的时间步长数。预测范围也称为预测长度。
例如,如果您为每日数据集合配置数据集(使用 CreateDataset 操作的
DataFrequency
参数),并将预测范围设置为 10,则模型将返回 10 天的预测。最大预测范围是 500 个时间步长或 TARGET_TIME_SERIES 数据集长度的 1/3 中较小的一个。
类型:整数
必需:是
- ForecastTypes
-
指定用于训练预测器的预测类型。您最多可指定五种预测类型。预测类型可以是从 0.01 到 0.99 的分位数,增量为 0.01 或更高。您也可以使用
mean
指定均值预测。默认值为
["0.10", "0.50", "0.9"]
。类型:字符串数组
数组成员:最少 1 项。最多 20 项。
长度限制:最小长度为 2。最大长度为 4。
模式:
(^0?\.\d\d?$|^mean$)
必需:否
- HPOConfig
-
为算法提供超参数覆盖值。如果您未提供此参数,Amazon Forecast 将使用默认值。各个算法指定哪些超参数支持超参数优化(HPO)。有关更多信息,请参阅 Amazon Forecast 算法。
如果包含
HPOConfig
对象,则必须设置PerformHPO
为 true。类型:HyperParameterTuningJobConfig 对象
必需:否
- InputDataConfig
-
描述包含要用于训练预测器的数据的数据集组。
类型:InputDataConfig 对象
必需:是
- OptimizationMetric
-
用于优化预测器的准确性指标。默认值为
AverageWeightedQuantileLoss
。类型:字符串
有效值:
WAPE | RMSE | AverageWeightedQuantileLoss | MASE | MAPE
必需:否
- PerformAutoML
-
是否执行 AutoML。当 Amazon Forecast 执行 AutoML 时,它会评估其提供的算法,并为您的训练数据集选择最佳算法和配置。
默认值为
false
。在这种情况下,需要指定算法。将
PerformAutoML
设置为true
,使 Amazon Forecast 执行 AutoML。如果您不确定哪种算法适合您的训练数据,那么这是一个不错的选择。在这种情况下,PerformHPO
必须为 false。类型:布尔值
必需:否
- PerformHPO
-
是否执行超参数优化(HPO)。HPO 会为您的训练数据找到最佳的超参数值。执行 HPO 的过程称为运行超参数优化作业。
默认值为
false
。在这种情况下,Amazon Forecast 使用所选算法中的默认超参数值。要覆盖默认值,请将
PerformHPO
设置为true
,也可以提供 HyperParameterTuningJobConfig 对象。优化作业指定要优化的指标、哪些超参数参与优化以及每个可优化参数的有效范围。在这种情况下,您需要指定算法,并且PerformAutoML
必须为 false。下列算法支持 HPO:
-
DeepAR+
-
CNN-QR
类型:布尔值
必需:否
-
- PredictorName
-
预测器的名称。
类型:字符串
长度限制:最小长度为 1。最大长度为 63。
模式:
^[a-zA-Z][a-zA-Z0-9_]*
必需:是
- Tags
-
您应用于预测器以帮助您对其进行分类和组织的可选元数据。每个标签都包含定义的一个密钥和一个可选值。
下面是适用于标签的基本限制:
-
每个资源的最大标签数 - 50。
-
对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值。
-
最大键长度 - 128 个 Unicode 字符(采用 UTF-8 格式)。
-
最大值长度 - 256 个 Unicode 字符(采用 UTF-8 格式)。
-
如果您的标记模式针对多个服务和资源使用,请记得其它服务可能对允许使用的字符有限制。通常允许使用的字符包括:可用 UTF-8 格式表示的字母、数字和空格,以及以下字符:+ - = . _ : / @。
-
标签键和值区分大小写。
-
请勿使用
aws:
AWS:
、或任何大写或小写组合,例如密钥的前缀,因为它是保留供 AWS 使用的。不能编辑或删除带此前缀的标签键。值可以带有该前缀。如果标签值将aws
作为其前缀,但键没有前缀,则 Forecast 会将其视为用户标签,并将计入 50 个标签的限制。仅具有aws
的键前缀的标签不计入每个资源的标签数限制。
类型:Tag 对象数组
数组成员:最少 0 个物品。最多 200 项。
必需:否
-
- TrainingParameters
-
模型训练中要覆盖的超参数。您可以覆盖的超参数在各个算法中列出。有关支持的算法的列表,请参阅 Amazon Forecast 算法。
类型:字符串到字符串映射
映射条目:最低 0 项。最多 100 个项目。
密钥长度限制:最大长度为 256。
键模式:
^[a-zA-Z0-9\-\_\.\/\[\]\,\\]+$
值长度限制:最大长度为 256。
值模式:
^[a-zA-Z0-9\-\_\.\/\[\]\,\"\\\s]+$
必需:否
响应语法
{
"PredictorArn": "string"
}
响应元素
如果此操作成功,则该服务将会发送回 HTTP 200 响应。
服务以 JSON 格式返回以下数据。
- PredictorArn
-
预测器的 Amazon 资源名称(ARN)。
类型:字符串
长度约束:最大长度为 256。
模式:
arn:([a-z\d-]+):forecast:.*:.*:.+
错误
- InvalidInputException
-
我们无法处理该请求,因为其包含无效值或超出有效范围的值。
HTTP 状态代码:400
- LimitExceededException
-
超过了每个账户的资源数量限制。
HTTP 状态代码:400
- ResourceAlreadyExistsException
-
已存在同名资源。请使用不同的名称重试。
HTTP 状态代码:400
- ResourceInUseException
-
指定的资源正在使用中。
HTTP 状态代码:400
- ResourceNotFoundException
-
我们找不到具有该 Amazon 资源名称(ARN)的资源。检查 ARN,然后重试。
HTTP 状态代码:400
另请参阅
有关在特定语言的 AWS SDK 中使用此 API 的更多信息,请参阅以下内容: