CreatePredictor - Amazon Forecast

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 的算法,请设置 PerformAutoMLtrue。定义 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 的更多信息,请参阅以下内容: