

 Amazon Forecast 不再提供給新客戶。Amazon Forecast 的現有客戶可以繼續正常使用服務。[進一步了解」](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 產生預測
<a name="howitworks-forecast"></a>

建立 Amazon Forecast 預測器之後，您就可以建立預測。根據預設，預測包含資料集群組中用於訓練預測器的每個項目 (`item_id`) 的預測。不過，您可以指定用於產生預測的項目子集。

 建立預測之後，您可以將預測匯出至 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

**Topics**
+ [建立預測](#exporting-forecast)
+ [指定時間序列](#forecast-time-series)
+ [匯出預測](#export-forecast)
+ [查詢預測](#query-forecast)
+ [Coldstart 預測](#coldstart-forecast)

## 建立預測
<a name="exporting-forecast"></a>

您可以使用預測主控台 AWS CLI，或 AWS SDKs建立預測。預測器的狀態必須處於**作用中**狀態，您才能產生預測。

------
#### [ Console ]

**若要建立預測**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) 開啟 Amazon Forecast 主控台。

1. 從**資料集群組**中，選擇您的資料集群組。

1. 在資料集群組的**儀表板**上，於**產生預測**下，選擇**建立預測**。**建立預測**頁面隨即出現。

1. 在**建立預測**頁面上，針對**預測詳細資訊**，提供預測的名稱，然後選擇您要用來建立預測的預測器。

1.  對於**預測四分位數**，選擇性地指定產生機率預測的四分位數。預設四分位數是您在建立預測器期間指定的四分位數。

1. 或者，選擇**所選項目**的選項按鈕，以指定用於產生預測的時間序列子集。

1. 或者，為預測新增任何標籤。如需詳細資訊，請參閱 [標記 Amazon Forecast 資源](tagging-forecast-resources.md)。

1. 選擇 **開始使用**。**預測**頁面隨即出現。

   **狀態**欄列出預測的狀態。等待 Amazon Forecast 完成建立預測。此程序需要幾分鐘或更長的時間來完成。建立預測後，狀態會轉換為**作用中**。

   現在您的預測已建立，您可以匯出預測。請參閱 [匯出預測](#export-forecast)。

------
#### [ CLI ]

若要使用 建立預測 AWS CLI，請使用 `create-forecast`命令。提供預測的名稱和預測器的 Amazon Resource Name (ARN)。對於 `forecast-types`，選擇性地指定產生概率預測的四分位數。預設值是您建立預測器時指定的四分位數。選擇性地為預測新增任何標籤。如需詳細資訊，請參閱 [標記 Amazon Forecast 資源](tagging-forecast-resources.md)。

如需必要和選用參數的詳細資訊，請參閱[CreateForecast](API_CreateForecast.md)。

```
aws forecast create-forecast \
--forecast-name forecast_name \
--forecast-types 0.1 0.5 0.9 \
--predictor-arn arn:aws:forecast:region:account_number:predictor/predictorName \
--tags Key=key1,Value=value1 Key=key2,Value=value2
```

------
#### [ Python ]

若要使用適用於 Python 的 SDK (Boto3) 建立預測，請使用 `create_forecast`方法。提供預測的名稱和預測器的 Amazon Resource Name (ARN)。對於 `ForecastTypes`，選擇性地指定產生概率預測的四分位數。預設值是您建立預測器時指定的四分位數。選擇性地為預測新增任何標籤。如需詳細資訊，請參閱 [標記 Amazon Forecast 資源](tagging-forecast-resources.md)。

如需必要和選用參數的詳細資訊，請參閱[CreateForecast](API_CreateForecast.md)。

```
import boto3
                
forecast = boto3.client('forecast')

create_forecast_response = forecast.create_forecast(
   ForecastName = "Forecast_Name",
   ForecastTypes = ["0.1", "0.5", "0.9"],        # optional, the default types/quantiles are what you specified for the predictor
   PredictorArn = "arn:aws:forecast:region:accountNumber:predictor/predictorName",
   Tags = [ 
      { 
         "Key": "key1",
         "Value": "value1"
      },
      { 
         "Key": "key2",
         "Value": "value2"
      }
   ]
)
forecast_arn = create_forecast_response['ForecastArn']
print(forecast_arn)
```

------

## 指定時間序列
<a name="forecast-time-series"></a>

**注意**  
時間序列是項目 (item\$1id) 和資料集中所有維度的組合。

若要指定時間序列清單，請上傳 CSV 檔案，以依其 item\$1id 和維度值識別時間序列，並上傳至 S3 儲存貯體。您還必須在結構描述中定義時間序列的屬性和屬性類型。

例如，零售商可能想知道廣告行銷活動如何影響特定商店位置 (`item_id`) 中特定項目 () 的銷售`store_location`。在此使用案例中，您會指定時間序列，其為 item\$1id 和 store\$1location 的組合。

下列 CSV 檔案會選取下列五個時間序列：

1. Item\$1id：001，store\$1location：西雅圖

1. Item\$1id：001，store\$1location：New York

1. Item\$1id：002， store\$1location： Seattle

1. Item\$1id：002， store\$1location：New York

1. Item\$1id：003， store\$1location： Denver

```
001, Seattle
001, New York
002, Seattle
002, New York
003, Denver
```

結構描述會將第一欄定義為 `item_id`，第二欄定義為 `store_location`。

您指定不在輸入資料集中的任何時間序列都會略過預測建立。預測匯出檔案不會包含這些時間序列或其預測值。

## 匯出預測
<a name="export-forecast"></a>

建立預測之後，您可以將預測匯出至 Amazon S3 儲存貯體。匯出預測會將預測複製到 Amazon S3 儲存貯體做為 CSV 檔案 （預設），匯出的資料除了項目預測之外，還包含任何項目中繼資料資料集的所有屬性。您可以在匯出預測時指定 Parquet 檔案格式。

匯出預測的精細程度 （例如每小時、每日或每週） 是您建立預測器時指定的預測頻率。您可以選擇性地指定 AWS Key Management Service 金鑰，在資料寫入儲存貯體之前加密資料。

**注意**  
匯出檔案可以直接從資料集匯入傳回資訊。如果匯入的資料含公式或命令，這會使檔案受到 CSV 注入的攻擊。因此，匯出的檔案可能會提示安全性警告。若要避免惡意活動，請在讀取匯出的檔案時停用連結和巨集。

------
#### [ Console ]

**匯出預測**

1. 在導覽窗格中的資料集群組下，選擇 **Forecasts (預測)**。

1. 選擇預測的選項按鈕，然後選擇**建立預測匯出**。**Create forecast export (建立預測匯出)** 頁面隨即顯示。

1. 在 **Create forecast export (建立預測匯出)** 頁面上，針對 **Export details (匯出詳細資訊)**，提供下列資訊。
   + **匯出名稱** – 輸入預測匯出任務的名稱。
   + **產生的預測** – 從下拉式功能表中，選擇您在 中建立的預測`Step 3: Create a Forecast`。
   + **IAM 角色** – 保留預設 **輸入自訂 IAM 角色 ARN** 或選擇**建立新的角色**，讓 Amazon Forecast 為您建立角色。
   + **自訂 IAM 角色 ARN** – 如果您要輸入自訂 IAM 角色，請輸入您在 中建立之 IAM 角色的 Amazon Resource Name (ARN)[建立 Amazon Forecast 的 IAM 角色 (IAM 主控台）](aws-forecast-iam-roles.md#aws-forecast-create-iam-role-with-console)。
   + **KMS 金鑰 ARN** – 如果您使用 AWS Key Management Service 進行儲存貯體加密，請提供 AWS KMS 金鑰的 Amazon Resource Name (ARN)。
   + **S3 預測匯出位置** – 使用下列格式，在儲存貯體中輸入 Amazon Simple Storage Service (Amazon S3) 儲存貯體或資料夾的位置：

     **s3://<name of your S3 bucket>/<folder path>/**

1. 選擇 **Create forecast export (建立預測匯出)**。此時將會顯示 **my\$1forecast** 頁面。

   等待 Amazon Forecast 完成匯出預測。此程序需要幾分鐘或更長的時間來完成。匯出預測後，狀態會轉換為**作用中**，您可以在 Amazon S3 儲存貯體中找到預測檔案。

------
#### [ CLI ]

若要使用 匯出預測 AWS CLI ，請使用 `export-forecast-job`命令。為預測匯出任務命名、指定要匯出之預測的 ARN，以及選擇性地新增任何標籤。針對 `destination`，指定輸出 Amazon S3 儲存貯體的路徑、您在 中建立的 IAM 角色 ARN[建立 Amazon Forecast 的 IAM 角色 (IAM 主控台）](aws-forecast-iam-roles.md#aws-forecast-create-iam-role-with-console)，如果您使用 AWS KMS 金鑰進行儲存貯體加密，則為金鑰的 ARN。

如需必要和選用參數的詳細資訊，請參閱 [CreateForecastExportJob](API_CreateForecastExportJob.md) 操作。

```
forecast create-forecast-export-job \
--forecast-export-job-name exportJobName \
--forecast-arn arn:aws:forecast:region:acctNumber:forecast/forecastName \
--destination S3Config="{Path='s3://bucket/folderName',RoleArn='arn:aws:iam::acctNumber:role/Role, KMSKeyArn='arn:aws:kms:region:accountNumber:key/keyID'}"
--tags Key=key1,Value=value1 Key=key2,Value=value2
```

------
#### [ Python ]

若要使用適用於 Python 的 SDK (Boto3) 匯出預測，請使用 `export_forecast_job`方法。為預測匯出任務命名、指定要匯出之預測的 ARN，以及選擇性地新增任何標籤。針對 `Destination`，指定輸出 Amazon S3 儲存貯體的路徑、您在 中建立的 IAM 角色 ARN[建立 Amazon Forecast 的 IAM 角色 (IAM 主控台）](aws-forecast-iam-roles.md#aws-forecast-create-iam-role-with-console)，如果您使用 AWS KMS 金鑰進行儲存貯體加密，則為金鑰的 ARN。

如需必要和選用參數的詳細資訊，請參閱 [CreateForecastExportJob](API_CreateForecastExportJob.md) 操作。

```
import boto3
           
forecast = boto3.client('forecast')

export_forecast_response = forecast.create_forecast_export_job(
   Destination = {
      "S3Config": { 
         "Path": "s3://bucketName/folderName/",
         "RoleArn": "arn:aws:iam::accountNumber:role/roleName",
         "KMSKeyArn": "arn:aws:kms:region:accountNumber:key/keyID"
      }
   },
   ForecastArn = "arn:aws:forecast:region:accountNumber:forecast/forecastName",
   ForecastExportJobName = "export_job_name",
   Tags = [ 
      { 
         "Key": "key1",
         "Value": "value1"
      },
      { 
         "Key": "key2",
         "Value": "value2"
      }
   ]
)
forecast_export_job_arn = export_forecast_response["ForecastExportJobArn"]
print(forecast_export_job_arn)
```

------

## 查詢預測
<a name="query-forecast"></a>

您可以使用 [QueryForecast](API_forecastquery_QueryForecast.md)操作查詢預測。根據預設，會傳回預測的完整範圍。您可以在完整預測中請求特定的日期範圍。

查詢預測時，您必須指定篩選條件。篩選條件是索引鍵/值組。索引鍵是來自建立預測的資料集之一的結構描述屬性名稱 (包括預測維度)。*值*是所指定索引鍵的有效值。您可以指定多個索引鍵/值組。傳回的預測只會包含滿足所有條件的項目。

## Coldstart 預測
<a name="coldstart-forecast"></a>

零售、製造或消費者包裝商品等產業的客戶面臨的常見挑戰是為沒有歷史資料的項目產生預測。此案例稱為冷啟動預測，在企業將新產品引入市場、板載品牌或目錄，或在新區域跨銷售產品時，通常會遇到這種情況。

Amazon Forecast 需要項目中繼資料才能執行冷啟動預測。利用項目中繼資料中發現的項目特性，預測會明確識別項目中繼資料中與沒有歷史資料的項目相似的項目。預測會使用現有項目的需求特性來產生新項目的冷啟動預測。

Amazon Forecast 會將 coldstart 項目識別為包含在項目中繼資料檔案中，但未包含在目標時間序列檔案中的項目。若要正確識別 coldstart 項目，請確定 coldstart 項目的項目 ID 已輸入為項目中繼資料檔案中的資料列，且未輸入目標時間序列檔案中。對於多個冷啟動項目，在項目中繼資料檔案中將每個項目 ID 輸入為個別的資料列。如果 coldstart 項目沒有項目 ID，您可以使用少於 64 個字元的任何英數字元組合，而且資料集中的另一個項目尚未使用。

Coldstart 預測需要項目中繼資料資料集和 AutoPredictor。