

 Amazon Forecast 不再向新买家开放。Amazon Forecast 的现有客户可以继续照常使用该服务。[了解更多](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

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

# CreatePredictor
<a name="API_CreatePredictor"></a>

**注意**  
 此操作创建传统预测器，该预测器不包含 Amazon Forecast 提供的所有预测器功能。要创建与 Forecast 所有方面兼容的预测器，请使用 [CreateAutoPredictor](API_CreateAutoPredictor.md)。

创建 Amazon Forecast 预测器。

**重要**  
Amazon Forecast 不再向新买家开放。Amazon Forecast 的现有客户可以继续照常使用该服务。[了解更多](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/) 

在该请求中，提供一个数据集组并指定算法，或者让 Amazon Forecast 使用 AutoML 为您选择算法。如果指定算法，您还可以覆盖特定于算法的超参数。

Amazon Forecast 使用该算法采用指定数据集组中最新版本的数据集来训练预测器。然后，您可以使用 [CreateForecast](API_CreateForecast.md) 操作生成预测。

 要查看评估指标，请使用 [GetAccuracyMetrics](API_GetAccuracyMetrics.md) 操作。

您可以指定特征化配置来填充并聚合 `TARGET_TIME_SERIES` 数据集中的数据字段，从而改进模型训练。有关更多信息，请参阅 [FeaturizationConfig](API_FeaturizationConfig.md)。

对于 RELATED\$1TIME\$1SERIES 数据集，`CreatePredictor` 验证创建数据集时指定的 `DataFrequency` 是否匹配 `ForecastFrequency`。TARGET\$1TIME\$1SERIES 数据集没有此限制。Amazon Forecast 还会验证分隔符和时间戳格式。有关更多信息，请参阅 [导入数据集](howitworks-datasets-groups.md)。

默认情况下，预测器以 0.1（P10）、0.5（P50）和 0.9 （P90）分位数进行训练和评估。您可以通过设置 `ForecastTypes` 来选择自定义预测类型来训练和评估预测器。

 **AutoML** 

如果您希望 Amazon Forecast 评估每种算法并选择最大限度地减少 `objective function` 的算法，请设置 `PerformAutoML` 为 `true`。定义 `objective function` 为预测类型的加权损失均值。默认情况下，这些损失是 p10、p50 和 p90 分位数损失。有关更多信息，请参阅 [EvaluationResult](API_EvaluationResult.md)。

启用 AutoML 时，不允许使用以下属性：
+  `AlgorithmArn` 
+  `HPOConfig` 
+  `PerformHPO` 
+  `TrainingParameters` 

要获取所有预测器的列表，请使用 [ListPredictors](API_ListPredictors.md) 操作。

**注意**  
在使用预测器创建预测之前，预测器的 `Status` 必须为 `ACTIVE`，表示训练已完成。要获取此状态，请使用 [DescribePredictor](API_DescribePredictor.md) 操作。

## 请求语法
<a name="API_CreatePredictor_RequestSyntax"></a>

```
{
   "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" 
   }
}
```

## 请求参数
<a name="API_CreatePredictor_RequestParameters"></a>

请求接受采用 JSON 格式的以下数据。

 ** [AlgorithmArn](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-AlgorithmArn"></a>
用于模型训练的算法的 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](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-AutoMLOverrideStrategy"></a>
 `LatencyOptimized` AutoML 覆盖策略仅在私有测试版中可用。请联系 Su AWS pport 或您的客户经理，详细了解访问权限。
用于覆盖默认的 AutoML 策略，即优化预测器的准确性。要应用可最大限度地缩短训练时间的 AutoML 策略，请使用 `LatencyOptimized`。  
此参数仅对使用 AutoML 训练的预测器有效。  
类型：字符串  
有效值：`LatencyOptimized | AccuracyOptimized`  
必需：否

 ** [EncryptionConfig](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-EncryptionConfig"></a>
 AWS Key Management Service (KMS) 密钥和 Amazon Forecast 可以代入的访问密钥的 AWS Identity and Access Management (IAM) 角色。  
类型：[EncryptionConfig](API_EncryptionConfig.md) 对象  
必需：否

 ** [EvaluationParameters](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-EvaluationParameters"></a>
用于覆盖指定算法的默认评估参数。Amazon Forecast 通过将数据集拆分为训练数据和测试数据来评估预测器。评估参数定义了如何执行拆分和迭代次数。  
类型：[EvaluationParameters](API_EvaluationParameters.md) 对象  
必需：否

 ** [FeaturizationConfig](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-FeaturizationConfig"></a>
特征化配置。  
类型：[FeaturizationConfig](API_FeaturizationConfig.md) 对象  
是否必需：是

 ** [ForecastHorizon](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-ForecastHorizon"></a>
指定训练模型来预测的时间步长数。预测范围也称为预测长度。  
例如，如果您为每日数据集合配置数据集（使用 [CreateDataset](API_CreateDataset.md) 操作的 `DataFrequency`参数），并将预测范围设置为 10，则模型将返回 10 天的预测。  
最大预测范围是 500 个时间步长或 TARGET\$1TIME\$1SERIES 数据集长度的 1/3 中较小的一个。  
类型：整数  
是否必需：是

 ** [ForecastTypes](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-ForecastTypes"></a>
指定用于训练预测器的预测类型。您最多可指定五种预测类型。预测类型可以是从 0.01 到 0.99 的分位数，增量为 0.01 或更高。您也可以使用 `mean` 指定均值预测。  
默认值为 `["0.10", "0.50", "0.9"]`。  
类型：字符串数组  
数组成员：最少 1 项。最多 20 项。  
长度限制：最小长度为 2。最大长度为 4。  
模式：`(^0?\.\d\d?$|^mean$)`  
必需：否

 ** [HPOConfig](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-HPOConfig"></a>
为算法提供超参数覆盖值。如果您未提供此参数，Amazon Forecast 将使用默认值。各个算法指定哪些超参数支持超参数优化（HPO）。有关更多信息，请参阅 [Amazon Forecast 算法](aws-forecast-choosing-recipes.md)。  
如果包含 `HPOConfig` 对象，则必须设置 `PerformHPO` 为 true。  
类型：[HyperParameterTuningJobConfig](API_HyperParameterTuningJobConfig.md) 对象  
必需：否

 ** [InputDataConfig](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-InputDataConfig"></a>
描述包含要用于训练预测器的数据的数据集组。  
类型：[InputDataConfig](API_InputDataConfig.md) 对象  
是否必需：是

 ** [OptimizationMetric](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-OptimizationMetric"></a>
用于优化预测器的准确性指标。默认值为 `AverageWeightedQuantileLoss`。  
类型：字符串  
有效值：`WAPE | RMSE | AverageWeightedQuantileLoss | MASE | MAPE`  
必需：否

 ** [PerformAutoML](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-PerformAutoML"></a>
是否执行 AutoML。当 Amazon Forecast 执行 AutoML 时，它会评估其提供的算法，并为您的训练数据集选择最佳算法和配置。  
默认值为 `false`。在这种情况下，需要指定算法。  
将 `PerformAutoML` 设置为 `true`，使 Amazon Forecast 执行 AutoML。如果您不确定哪种算法适合您的训练数据，那么这是一个不错的选择。在这种情况下，`PerformHPO` 必须为 false。  
类型：布尔值  
必需：否

 ** [PerformHPO](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-PerformHPO"></a>
是否执行超参数优化（HPO）。HPO 会为您的训练数据找到最佳的超参数值。执行 HPO 的过程称为运行超参数优化作业。  
默认值为 `false`。在这种情况下，Amazon Forecast 使用所选算法中的默认超参数值。  
要覆盖默认值，请将 `PerformHPO` 设置为 `true`，也可以提供 [HyperParameterTuningJobConfig](API_HyperParameterTuningJobConfig.md) 对象。优化作业指定要优化的指标、哪些超参数参与优化以及每个可优化参数的有效范围。在这种情况下，您需要指定算法，并且 `PerformAutoML` 必须为 false。  
下列算法支持 HPO：  
+ DeepAR\$1
+ CNN-QR
类型：布尔值  
必需：否

 ** [PredictorName](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-PredictorName"></a>
预测器的名称。  
类型：字符串  
长度限制：最小长度为 1。最大长度为 63。  
模式：`^[a-zA-Z][a-zA-Z0-9_]*`  
是否必需：是

 ** [Tags](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-Tags"></a>
您应用于预测器以帮助您对其进行分类和组织的可选元数据。每个标签都包含定义的一个键和一个可选值。  
下面是适用于 标签的基本限制：  
+ 每个资源的最大标签数 - 50。
+ 对于每个资源，每个标签键必须是唯一的，并且每个标签键只能有一个值。
+ 最大键长度 - 128 个 Unicode 字符（采用 UTF-8 格式）。
+ 最大值长度 - 256 个 Unicode 字符（采用 UTF-8 格式）。
+ 如果您的标记模式针对多个服务和资源使用，请记得其它服务可能对允许使用的字符有限制。通常允许使用的字符包括：可用 UTF-8 格式表示的字母、数字和空格，以及以下字符：\$1：= . \$1 : / @。
+ 标签键和值区分大小写。
+ 请勿使用`aws:``AWS:`、或任何大写或小写组合，例如密钥的前缀，因为它是保留供 AWS 使用的。不能编辑或删除带此前缀的标签键。值可以带有该前缀。如果标签值将 `aws` 作为其前缀，但键没有前缀，则 Forecast 会将其视为用户标签，并将计入 50 个标签的限制。仅具有 `aws` 的键前缀的标签不计入每个资源的标签数限制。
类型：[Tag](API_Tag.md) 对象数组  
数组成员：最少 0 个物品。最多 200 项。  
必需：否

 ** [TrainingParameters](#API_CreatePredictor_RequestSyntax) **   <a name="forecast-CreatePredictor-request-TrainingParameters"></a>
模型训练中要覆盖的超参数。您可以覆盖的超参数在各个算法中列出。有关支持的算法的列表，请参阅 [Amazon Forecast 算法](aws-forecast-choosing-recipes.md)。  
类型：字符串到字符串映射  
映射条目：最低 0 项。最多 100 个项目。  
密钥长度限制：最大长度为 256。  
键模式：`^[a-zA-Z0-9\-\_\.\/\[\]\,\\]+$`  
值长度限制：最大长度为 256。  
值模式：`^[a-zA-Z0-9\-\_\.\/\[\]\,\"\\\s]+$`  
必需：否

## 响应语法
<a name="API_CreatePredictor_ResponseSyntax"></a>

```
{
   "PredictorArn": "string"
}
```

## 响应元素
<a name="API_CreatePredictor_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

 ** [PredictorArn](#API_CreatePredictor_ResponseSyntax) **   <a name="forecast-CreatePredictor-response-PredictorArn"></a>
预测器的 Amazon 资源名称（ARN）。  
类型：字符串  
长度约束：最大长度为 256。  
模式：`arn:([a-z\d-]+):forecast:.*:.*:.+`

## 错误
<a name="API_CreatePredictor_Errors"></a>

 ** InvalidInputException **   
我们无法处理该请求，因为其包含无效值或超出有效范围的值。  
HTTP 状态代码：400

 ** LimitExceededException **   
超过了每个账户的资源数量限制。  
HTTP 状态代码：400

 ** ResourceAlreadyExistsException **   
已存在同名资源。请使用不同的名称重试。  
HTTP 状态代码：400

 ** ResourceInUseException **   
指定的资源正在使用中。  
HTTP 状态代码：400

 ** ResourceNotFoundException **   
我们找不到具有该 Amazon 资源名称（ARN）的资源。检查 ARN，然后重试。  
HTTP 状态代码：400

## 另请参阅
<a name="API_CreatePredictor_SeeAlso"></a>

有关以特定语言之一使用此 API 的更多信息 AWS SDKs，请参阅以下内容：
+  [AWS 命令行界面 V2](https://docs.aws.amazon.com/goto/cli2/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于.NET 的 SDK V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/goto/SdkForCpp/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于 Go v2 的 SDK](https://docs.aws.amazon.com/goto/SdkForGoV2/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于 Java 的 SDK V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/forecast-2018-06-26/CreatePredictor) 
+  [AWS JavaScript V3 版软件开发工具包](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/goto/SdkForKotlin/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于 PHP 的 SDK V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/forecast-2018-06-26/CreatePredictor) 
+  [AWS Python 软件开发工具包](https://docs.aws.amazon.com/goto/boto3/forecast-2018-06-26/CreatePredictor) 
+  [AWS 适用于 Ruby V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/forecast-2018-06-26/CreatePredictor) 