

 Amazon Forecast は新規顧客には利用できなくなりました。Amazon Forecast の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 予測子のトレーニング
<a name="howitworks-predictor"></a>

予測子は、ターゲットの時系列、関連する時系列、アイテムメタデータ、および含める追加のデータセットを使用してトレーニングされた Amazon Forecast のモデルです。予測子を使用して、時系列データに基づいて予測を生成できます。

デフォルトでは、Amazon Forecast は AutoPredictor を作成します。Forecast はデータセット内の各時系列にアルゴリズムの最適な組み合わせを適用します。

**Topics**
+ [予測子の作成](#creating-predictors)
+ [AutoPredictor へのアップグレード](#upgrading-autopredictor)
+ [さまざまな予想頻度のデータ集計](data-aggregation.md)
+ [追加のデータセットの使用](#using-additional-datasets)
+ [レガシー予測子の使用](#legacy-predictors)
+ [予測精度の評価](metrics.md)
+ [予測子の再トレーニング](retrain-predictors.md)
+ [Weather Index](weather.md)
+ [Holidays の特徴量化](holidays.md)
+ [Predictor Explainability](predictor-explainability.md)
+ [予測子のモニタリング](predictor-monitoring.md)
+ [Amazon Forecast アルゴリズム](aws-forecast-choosing-recipes.md)

## 予測子の作成
<a name="creating-predictors"></a>

Amazon Forecast は、予測子をトレーニングするために次の入力を必要とします。
+ **データセットグループ** – ターゲット時系列データセットを含める必要があるデータセットグループ。ターゲット時系列データセットには、ターゲット属性 (`item_id`) とタイムスタンプ属性、および任意のディメンションが含まれます。関連する時系列とアイテムメタデータはオプションです。詳細については、「[データセットのインポート](howitworks-datasets-groups.md)」を参照してください。
+ **予測頻度** – 予測の粒度 (毎時、毎日、毎週など)。Amazon Forecast では、頻度の単位と値を指定することで、予想の正確な粒度を判断できます。整数値のみ指定できます。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/howitworks-predictor.html)

  例えば、隔週の予想が必要な場合、頻度の単位は週に、値は 2 です。または、四半期ごとの予想が必要な場合は、頻度の単位は 1 か月で、値は 3 です。

  予想頻度よりも高い頻度でデータが収集されると、そのデータは予想頻度に集約されます。これには、直近の時系列と関連する時系列データが含まれます。集計詳細については、「[さまざまな予想頻度のデータ集計](data-aggregation.md)」を参照してください。
+ **予測期間** – 予測されるタイムステップの数。

次のオプション入力の値を設定することもできます。
+  **時間調整境界** — Forecast がデータを集約し、指定した予想頻度に合わせた予想を生成するために使用する時間境界です。集計詳細については、「[さまざまな予想頻度のデータ集計](data-aggregation.md)」を参照してください。時間境界の指定について詳しくは、「[時間境界](data-aggregation.md#time-boundaries)」を参照してください。
+ **予測ディメンション** – ディメンションは、ターゲット時系列データセットのオプションの属性であり、ターゲット値 (`item_id`) と組み合わせて使用して個別の時系列を作成できます。
+ **予測タイプ** – 予測子の評価に使用される分位数。
+ **最適化メトリクス** – 予測子を最適化するために使用される精度メトリクス。
+ **追加のデータセット** – Weather Index や Holidays などのビルトインの Amazon Forecast データセット。

ソフトウェア開発キット (SDK) または Amazon Forecast コンソールを使用して、予測子を作成できます。

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

**予測子を作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. **[Train new predictor]** (新しい予測子のトレーニング) を選択します。

1. 以下の必須フィールドに値を入力します。
   +  **名前** - 一意の予測子名。
   + **予測頻度** - 予測の粒度。
   + **[Forecast horizon]** (予測期間) - 予測するタイムステップの数。

1. **[開始]** を選択します。

追加のデータセットについては、[Weather Index](weather.md) および [Holidays の特徴量化](holidays.md) を参照してください。予測タイプと最適化メトリクスのカスタマイズの詳細については、「[予測精度の評価](metrics.md)」を参照してください。

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

で自動予測子を作成するには AWS CLI、 `create-predictor` コマンドを使用します。次のコードでは、今後 14 日 の予測を行う自動予測子を作成します。

予測子の名前と、トレーニングデータを含むデータセットグループの Amazon リソースネーム (ARN) を指定します。必要に応じて、予測期間と予想頻度を変更します。必要に応じて、予測子に任意のタグを追加します。詳細については、「[Amazon Forecast のリソースのタグ付け](tagging-forecast-resources.md)」を参照してください。

必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

```
aws forecast create-predictor \
--predictor-name predictor_name \
--data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \
--forecast-horizon 14 \
--forecast-frequency D \
--tags Key=key1,Value=value1 Key=key2,Value=value2
```

予想タイプと最適化メトリクスのカスタマイズの詳細については、「[予測精度の評価](metrics.md)」を参照してください。`DataConfig` データ型内で Weather Index および Holidays の追加のデータセットが定義されています。追加のデータセットについては、[Weather Index](weather.md) および [Holidays の特徴量化](holidays.md) を参照してください。

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

SDK for Python (Boto3) を使用して自動予測子を作成するには、`create_auto_predictor` メソッドを使用します。次のコードでは、今後 14 日 の予測を行う自動予測子を作成します。

予測子の名前と、トレーニングデータを含むデータセットグループの Amazon リソースネーム (ARN) を指定します。必要に応じて、予測期間と予想頻度を変更します。必要に応じて、予測子に任意のタグを追加します。詳細については、「[Amazon Forecast のリソースのタグ付け](tagging-forecast-resources.md)」を参照してください。

必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

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

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ForecastHorizon = 14,
    ForecastFrequency = 'D',
    DataConfig = {
      "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName"
    },
    Tags = [ 
      { 
         "Key": "key1",
         "Value": "value1"
      },
      { 
         "Key": "key2",
         "Value": "value2"
      }
    ]
)
print(create_predictor_response['PredictorArn'])
```

予想タイプと最適化メトリクスのカスタマイズの詳細については、「[予測精度の評価](metrics.md)」を参照してください。`DataConfig` データ型内で Weather Index および Holidays の追加のデータセットが定義されています。追加のデータセットについては、[Weather Index](weather.md) および [Holidays の特徴量化](holidays.md) を参照してください。

------

## AutoPredictor へのアップグレード
<a name="upgrading-autopredictor"></a>

**Python ノートブック**  
予測子を AutoPredictor にアップグレードするためのステップバイステップガイドについては、「[Upgrading a predictor to AutoPredictor](https://github.com/aws-samples/amazon-forecast-samples/blob/main/notebooks/basic/Upgrading_to_AutoPredictor/UpgradeToAutoPredictor.ipynb)」(予測子を AutoPredictor にアップグレードする) を参照してください。

AutoML または手動選択 (CreatePredictor) で作成された予測子は、AutoPredictor にアップグレードできます。既存の予測子を AutoPredictor にアップグレードすると、関連するすべての予測子構成設定が転送されます。

AutoPredictor にアップグレードした後も、元の予測子はアクティブなままで、アップグレードされた予測子には個別の Predictor ARN があります。これにより、2 つの予測子間の精度メトリクスを比較でき、元の予測子を使用して予測を生成できます。

ソフトウェア開発キット (SDK) または Amazon Forecast コンソールを使用して、予測子をアップグレードできます。

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

**予測子をアップグレードするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. アップグレードする予測子を選択し、**[Upgrade]** (アップグレード) を選択します。

1. アップグレードされた予測子の一意の名前を設定します。

1. **[Upgrade to AutoPredictor]** (AutoPredictor にアップグレード) を選択します。

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

を使用して予測子をアップグレードするには AWS CLI、 `create-predictor`メソッドを使用しますが、予測子名と の値 `reference-predictor-arn` (アップグレードする予測子の ARN) *のみ*を指定します。

```
aws forecast create-predictor \
--predictor-name predictor_name \
--reference-predictor-arn arn:aws:forecast:region:account:predictor/predictorName
```

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

SDK for Python (Boto3) を使用して予測子をアップグレードするには、`create_auto_predictor` メソッドを使用します。ただし、予測子の名前と `ReferencePredictorArn` の値 (アップグレードする予測子の ARN) のみを指定します。

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

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ReferencePredictorArn = 'arn:aws:forecast:region:account:predictor/predictorName'
)
print(create_predictor_response['PredictorArn'])
```

------

# さまざまな予想頻度のデータ集計
<a name="data-aggregation"></a>

 予測子を作成するときは、予想頻度を指定する必要があります。予想頻度によって、予想における予測頻度が決まります。例えば、月次売上予想などです。Amazon Forecast の予測子は、指定した予想頻度よりも高いデータ頻度の予想を生成できます。例えば、データが毎日記録されている場合でも、週ごとの予想を生成できます。トレーニング中、Forecast は日次データを集計し、週ごとの予想頻度で予想を生成します。

**Topics**
+ [集計の仕組み](how-aggregation-works.md)
+ [時間境界](#time-boundaries)
+ [データ集計の想定](aggregation-guidelines.md)

# 集計の仕組み
<a name="how-aggregation-works"></a>

 トレーニング中、Amazon Forecast は、指定した予想頻度と一致しないデータをすべて集計します。例えば、日次データはあるが、週次の予想頻度を指定しているとします。Forecast は、そのデータが属する週に基づいて日次データを調整します。次に、Forecast はそれを週ごとに 1 つのレコードにまとめます。Forecast は、時間境界との関係に基づいて、データがどの週 (または月、日など) に属するかを判断します。時間境界は、1 日の開始時間や週の開始日など、時間単位の開始点を指定します。

 時間単位や分単位の予想、または時間境界が不明な場合、Forecast は頻度の時間単位に基づくデフォルトの時間境界を使用します。日次、週次、月次、または年次の予想頻度となる自動予測子の場合、カスタムの時間境界を指定できます。時間境界の詳細については、「[時間境界](data-aggregation.md#time-boundaries)」を参照してください 

 集計時のデフォルトの変換方法は、データを合計することです。予測子の作成時に変換を設定できます。これは、Forecast コンソールの **[予測子を作成]** ページの **[入力データ設定]** セクションで行います。または、CreateAutoPredictor オペレーションの [AttributeConfig](API_AttributeConfig.md) の `Transformations` パラメータで変換メソッドを設定することもできます。

次の表は、デフォルトの時間境界を使用した 1 時間ごとの予測頻度の集計例を示しています。各時間は正時から始まります。

**変換前**


| 時間 | [データ] | 時間の冒頭 | 
| --- | --- | --- | 
| 2018-03-03 01:00:00 | 100 | はい | 
| 2018-03-03 02:20:00 | 50 | いいえ | 
| 2018-03-03 02:45:00 | 20 | いいえ | 
| 2018-03-03 04:00:00 | 120 | はい | 

**変換後**


| 時間 | [データ] | メモ | 
| --- | --- | --- | 
| 2018-03-03 01:00:00 | 100 |  | 
| 2018-03-03 02:00:00 | 70 | 02:00:00～02:59:59 (50 \$1 20) の間の値の合計 | 
| 2018-03-03 03:00:00 | 空 | 03:00:00～03:59:59 の間に値はありません | 
| 2018-03-03 04:00:00 | 120 |  | 

次の図は、Forecast がデフォルトの毎週の時間境界に合うようにデータを変換する方法を示しています。

![\[Raw sales data points transformed into a smooth demand time series curve over weekly intervals.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/data-alignment.png)


## 時間境界
<a name="time-boundaries"></a>

時間境界は、週の開始日など、時間単位の開始点を指定します。データを集計する前に、Amazon Forecast は予想頻度の時間単位に基づいてデータを調整します。これは、データと時間的境界との関係に基づいて行われます。

 例えば、日単位の予想頻度を指定し、独自の時間境界は指定しない場合、Forecast は各時間ごとのレコードをその日付に基づいて調整します。1 日の開始は 0 時間です。1 日の開始 (0 時間) の定義が時間境界です。次に、Forecast は時間単位のレコードをその日の 1 つのレコードに集約します。

Forecast は、予想頻度の時間単位に基づくデフォルトの時間境界を使用します。自動予測子を作成する場合、カスタムの時間境界を指定できます。

カスタム時間境界とカスタム予想頻度の両方を指定すると、Forecast は予想頻度内のデータを集計し、カスタム時間境界に合わせます。予想頻度によってデータが集計される頻度が決まり、カスタム時間境界によって調整が行われる場所が決まります。例えば、データを毎日収集していて、Amazon Forecast でその月の 15 日に 1 年間の四半期予想を生成させたいとします。そのためには、予想頻度を 3 か月ごとに、カスタム期間を 15 に設定します。次の AWS Command Line Interface 例を参照してください。

```
aws forecast create-predictor \
--predictor-name predictor_name \
--data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \
--forecast-horizon 4 \
--forecast-frequency 3M \
--time-alignment-boundary DayOfMonth=15
```

この例では、すべての日次データが 3 か月ごとの 15 日に合計されます (デフォルトの集計)。

この集計では日次データは必要なく、データが毎月またはそれ以上の頻度で収集されることだけであることに注意してください。

**Topics**
+ [デフォルトの時間境界](#default-time-boundaries)
+ [時間境界の指定](#specifying-time-boundary)

### デフォルトの時間境界
<a name="default-time-boundaries"></a>

次の表は、Forecast がデータを集計するときに使用するデフォルトの時間調整の境界を示しています。


| 頻度 | 境界 | 
| --- | --- | 
| 分 | 分の末尾 (45:00、06:00) | 
| 時 | 時間の末尾 (09:00:00、13:00:00) | 
| 日 | 1 日の最初の 1 時間 (0 時間) | 
| 週 | 直近の月曜日 | 
| 月 | 毎月 1 日 | 
| 年 | 年始 (1 月 1 日) | 

### 時間境界の指定
<a name="specifying-time-boundary"></a>

**注記**  
自動予測子には時間境界のみを指定できます。

 日次、週次、月次、または年次の予測頻度で自動予測子を作成する場合、Forecast がデータを集計するために使用する時間境界を指定できます。業務カレンダーがデフォルトの時間境界と一致しない場合は、時間境界を指定できます。例えば、各月にその 3 日目から始まる月次予想を生成したい場合があります。時間境界を指定しない場合、Forecast は [デフォルトの時間境界](#default-time-boundaries) のセットを使用します。

 指定する時間境界単位は、予想頻度より 1 単位小さくなければなりません。次の表は、指定できる時間境界の単位と値を予想頻度別にまとめたものです。

境界値が `28` 以下の `Monthly` 時間境界のみを指定できます。


| 予想頻度単位 | 境界の単位 | 境界の値 | 
| --- | --- | --- | 
| 1 日 1 回 | 時 | 0～23 | 
| 毎週 | 曜日 | 月曜日から日曜日 | 
| 月別 | 日 | 1 から 28 | 
| 年次 | 月 | 1 月から 12 月 | 

予測子を作成するときは、次のように時間調整の境界を指定します。プログラムで指定できるさまざまな時間境界単位と境界値については、「[TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)」を参照してください。

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

****

**予測子の時間調整境界を指定するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. **[Train new predictor]** (新しい予測子のトレーニング) を選択します。

1. 必須の **[名前]**、**[予想頻度]**、および **[予想]** フィールドに値を入力します。

1.  **[時間調整境界]** には、予測子がデータを集計するときに使用する時間境界を指定します。このリストの値は、選択した**予想頻度**によって異なります。

1. **[開始]** を選択します。Forecast は、予測子の作成時に指定した時間調整境界を使用してデータを集計します。

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

を使用して予測子の時間調整境界を指定するには AWS CLI、 `create-predictor` コマンドを使用します。`time-alignment-boundary` パラメータには、時間単位と境界値を指定します。次のコードは、毎週火曜日から始まる先の 5 週間を予測する自動予測子を作成します。

`DayOfWeek` と `DayOfMonth` 値はすべて大文字でなければなりません。指定できるさまざまな時間境界単位と境界値については、「[TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)」を参照してください。必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

```
aws forecast create-predictor \
--predictor-name predictor_name \
--data-config DatasetGroupArn="arn:aws:forecast:region:account:dataset-group/datasetGroupName" \
--forecast-horizon 5 \
--forecast-frequency W \
--time-alignment-boundary DayOfWeek=TUESDAY
```

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

SDK for Python (Boto3) で予測子のタイムアライメント境界を指定するには、`create_auto_predictor` メソッドを使用します。`TimeAlignmentBoundary` パラメータには、時間単位をキー、境界値を値とするディクショナリを指定します。次のコードは、毎週火曜日から始まる先の 5 週間を予測する自動予測子を作成します。

`DayOfWeek` と `DayOfMonth` 値はすべて大文字でなければなりません。指定できるさまざまな時間境界単位と境界値については、「[TimeAlignmentBoundary](API_TimeAlignmentBoundary.md)」を参照してください。必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

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

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ForecastHorizon = 5,
    ForecastFrequency = 'W',
    DataConfig = {
      "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName"
    },
    TimeAlignmentBoundary = {
      "DayOfWeek": "TUESDAY"
    }
)
print(create_predictor_response['PredictorArn'])
```

------

# データ集計の想定
<a name="aggregation-guidelines"></a>

Forecast は、データが特定のタイムゾーンのものであるとは想定していません。ただし、時系列データを集計するときは、次の前提になります。
+ すべてのデータは同じタイムゾーンからのものです。
+ すべての予想は、データセットのデータと同じタイムゾーンにあります。
+ [CreatePredictor](API_CreatePredictor.md) オペレーションの [InputDataConfig](API_InputDataConfig.md) パラメータで [SupplementaryFeature](API_SupplementaryFeature.md) 休日機能を指定した場合、入力データは同じ国のものです。

## 追加のデータセットの使用
<a name="using-additional-datasets"></a>

Amazon Forecast には、予測子を作成するときに Weather Index と Holidays を含めることができます。Weather Index は気象情報をモデルに組み込み、Holidays は祝祭日に関する情報を組み込みます。

Weather Index には、ターゲット時系列データセットの「geolocation」属性と、タイムスタンプのタイムゾーンに関する情報が必要です。詳細については、「[Weather Index](weather.md)」を参照してください。

Holidays には、250 か国を超える祝祭日情報が含まれています。詳細については、「[Holidays の特徴量化](holidays.md)」を参照してください。

## レガシー予測子の使用
<a name="legacy-predictors"></a>

**注記**  
既存の予測子を AutoPredictor にアップグレードするには、「[AutoPredictor へのアップグレード](#upgrading-autopredictor)」を参照してください。

AutoPredictor は、Amazon Forecast で予測子を作成するために推奨されるデフォルトのメソッドです。AutoPredictor は、データセット内の各時系列に最適なアルゴリズムの組み合わせを適用することにより、予測子を作成します。

AutoPredictor で作成された予測子は、通常、AutoML または手動選択で作成された予測子よりも正確です。Forecast Explainability および予測子の再トレーニング機能は、AutoPredictor で作成された予測子でのみ使用できます。

Amazon Forecast は、次の方法でレガシー予測子を作成することもできます。

1. **AutoML** - Forecast は、最もパフォーマンスの高いアルゴリズムを見つけて、それをデータセット全体に適用します。

1. **手動選択** - データセット全体に適用される単一のアルゴリズムを手動で選択します。

Software Development Kit (SDK) を使用して、レガシー予測子を作成できる場合があります。

------
#### [ SDK ]

**AutoML を使用するには**

[`CreatePredictor`](API_CreatePredictor.md) オペレーションを使用して、`PerformAutoML` の値を `"true"` に設定します。

```
{
    ...
    "PerformAutoML": "true",
}
```

AutoML を使用する場合、`AlgorithmArn`、`HPOConfig`、`TrainingParameters` といった CreatePredictor パラメータに値を設定することはできません。

------

# 予測精度の評価
<a name="metrics"></a>

Amazon Forecast は、予測子を評価し、予測の生成に使用する項目を選択するのに役立つ精度メトリクスを生成します。Amazon Forecast は、二乗平均平方根誤差 (RMSE)、重み付き分位損失 (wQL)、平均絶対パーセント誤差 (MAPE)、平均絶対スケーリング誤差 (MASE)、および重み付き絶対誤差率 (WAPE) メトリクスを提供します。

Amazon Forecast は、バックテストを使用してパラメータをチューニングし、精度メトリクスを生成します。バックテスト中、Forecast は、時系列データをトレーニングセットとテストセットといった 2 つのセットに自動的に分割します。トレーニングセットは、モデルをトレーニングし、テストセット内のデータポイントの予想を生成するために使用されます。Forecast は、予測値をテストセットの観測値と比較することにより、モデルの精度を評価します。

Forecast を使用すると、さまざまな予測タイプを使用して予測子を評価できます。これは、分位数予測と平均予測のセットである場合があります。平均予測は点推定を提供しますが、分位数予測は通常、考えられる結果の範囲を提供します。

**Python ノートブック**  
予測子メトリクスの評価に関するステップバイステップガイドについては、「[Computing Metrics Using Item-level Backtests](https://github.com/aws-samples/amazon-forecast-samples/blob/master/notebooks/advanced/Item_Level_Accuracy/Item_Level_Accuracy_Using_Bike_Example.ipynb)」(項目レベルのバックテストを使用したメトリクスのコンピューティング) を参照してください。

**Topics**
+ [精度メトリクスの解釈](#predictor-metrics)
+ [重み付き分位損失 (wQL)](#metrics-wQL)
+ [重み付き絶対誤差率 (WAPE)](#metrics-WAPE)
+ [二乗平均平方根誤差 (RMSE)](#metrics-RMSE)
+ [平均絶対パーセント誤差 (MAPE)](#metrics-mape)
+ [平均絶対スケーリング誤差 (MASE)](#metrics-mase)
+ [精度メトリクスのエクスポート](#backtest-exports)
+ [Forecast タイプの選択](#forecast-types)
+ [レガシー予測子の使用](#legacy-metrics)

## 精度メトリクスの解釈
<a name="predictor-metrics"></a>

 Amazon Forecast は、予測子を評価するために、二乗平均平方根誤差 (RMSE)、重み付き分位損失 (wQL)、平均重み付き分位損失 (平均 wQL)、平均絶対スケーリング誤差 (MASE)、平均絶対パーセント誤差 (MAPE)、および重み付き絶対誤差率 (WAPE) メトリクスを提供します。全体的な予測子のメトリクスとともに、Forecast は、各バックテストウィンドウのメトリクスを計算します。

Amazon Forecast のソフトウェア開発キット (SDK) および Amazon Forecast コンソールを使用して、予測子の精度メトリクスを表示できます。

------
#### [ Forecast SDK ]

[GetAccuracyMetrics](API_GetAccuracyMetrics.md) オペレーションを使用して、各バックテストの RMSE、MASE、MAPE、WAPE、平均 wQL、および wQL のメトリクスを表示するように `PredictorArn` を指定します。

```
{
    "PredictorArn": "arn:aws:forecast:region:acct-id:predictor/example-id"
}
```

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

**[Predictors]** (予測子) のページで予測子を選択します。予測子の精度メトリクスは、**[Predictor metrics]** (予測子メトリクス) のセクションに表示されます。

------

**注記**  
 平均 wQL、wQL、RMSE、MASE、MAPE、および WAPE メトリクスの場合、値が小さいほど優れたモデルであることを示します。

**Topics**
+ [精度メトリクスの解釈](#predictor-metrics)
+ [重み付き分位損失 (wQL)](#metrics-wQL)
+ [重み付き絶対誤差率 (WAPE)](#metrics-WAPE)
+ [二乗平均平方根誤差 (RMSE)](#metrics-RMSE)
+ [平均絶対パーセント誤差 (MAPE)](#metrics-mape)
+ [平均絶対スケーリング誤差 (MASE)](#metrics-mase)
+ [精度メトリクスのエクスポート](#backtest-exports)
+ [Forecast タイプの選択](#forecast-types)
+ [レガシー予測子の使用](#legacy-metrics)

## 重み付き分位損失 (wQL)
<a name="metrics-wQL"></a>

重み付き分位損失 (wQL) メトリクスは、指定された分位数でのモデルの精度を測定します。これは、過小予測と過大予測のコストが異なる場合に特に役立ちます。wQL 関数の重み (*τ*) を設定することにより、過小予測と過大予測に対して異なるペナルティを自動的に組み込むことができます。

損失関数は以下のように計算されます。

![\[Mathematical equation for weighted quantile loss function with tau parameter.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/metrics-quantile-loss.png)


コードの説明は以下のとおりです。  
*τ* - セット \$10.01, 0.02, ..., 0.99\$1 内の分位数  
qi,t(τ) - モデルが予測する τ 分位数。  
yi,t - ポイント (i,t) での観測値

wQL の分位数 (τ) は、0.01 (P1) から 0.99 (P99) の範囲です。wQL メトリクスは、平均予測を求めるために計算することはできません。

デフォルトでは、Forecast は、`0.1` (P10)、`0.5` (P50)、および `0.9` (P90) で wQL を計算します。
+ **P10 (0.1)** - true の値は 10％ の確率で予測値より低くなることが予想されます。
+ **P50 (0.5)** - true の値は 50％ の確率で予測値より低くなることが予想されます。これは、予測の中央値とも呼ばれます。
+ **P90 (0.9)** - true の値は 90％ の確率で予測値より低くなることが予想されます。

小売業では、在庫不足のコストは在庫過剰のコストよりも高いことが多いため、P75 (*τ* = 0.75) での予測は、分位数の中央値 (P50) での予測よりも有益な場合があります。これらの場合、wQL[0.75] は、より大きなペナルティの重みを過小予測 (0.75) に割り当て、より小さなペナルティの重みを過大予測 (0.25) に割り当てます。

![\[Two probability distribution curves showing demand forecasting at P50 and P75 quantiles.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/p50-p75-prediction.jpg)


上の図は、wQL[0.50] と wQL[0.75] でのさまざまな需要予測を示しています。P75 の予測値は P50 の予測値よりも大幅に高くなります。これは、P75 の予測が 75% の確率で需要を満たすと予想されるのに対し、P50 の予測は 50% の確率で需要を満たすと予想されるためです。

指定のバックテスト期間では、すべての項目と時間ポイントの観察された値の合計がほぼゼロの場合、重み付き分位損失の式は未定義になります。これらの場合、Forecast は重み付けされていない分位損失を出力します。これは、wQL 式の分子です。

Forecast は、指定されたすべての分位数にわたる重み付き分位損失の平均値である平均 wQL も計算します。デフォルトでは、これは wQL[0.10]、wQL[0.50]、および wQL[0.90] の平均になります。

## 重み付き絶対誤差率 (WAPE)
<a name="metrics-WAPE"></a>

重み付き絶対誤差率 (WAPE) は、観測値からの予測値の全体的な偏差を測定します。WAPE は、観測値の合計と予測値の合計を取り、これら 2 つの値の間の誤差を計算することによって計算されます。値が小さいほど、モデルの精度が高くなります。

 指定のバックテスト期間では、すべての時間ポイントとすべての項目の観察された値の合計がほぼゼロの場合、重み付き絶対パーセント誤差の式は未定義になります。これらの場合、Forecast は重み付けされていない絶対誤差の合計を出力します。これは、WAPE 式の分子です。

![\[Mathematical formula for WAPE showing summation of absolute differences divided by sum of absolute values.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/WAPE.png)


コードの説明は以下のとおりです。  
yi,t - ポイント (i,t) での観測値  
ŷi,t - ポイント (i,t) での予測値

 Forecast は、平均予測を予測値 ŷi,t として使用します。

WAPE は、二乗誤差の代わりに絶対誤差を使用するため、二乗平均平方根誤差 (RMSE) よりも外れ値に対してロバストです。

Amazon Forecast は、これまで、WAPE メトリクスを平均絶対パーセント誤差 (MAPE) と呼び、予測の中央値 (P50) を予測値として使用していました。Forecast は、平均予測を使用して WAPE を計算するようになりました。以下に示すように、wQL[0.5] メトリクスは WAPE[median] メトリクスと同等です。

![\[Mathematical equation showing the equivalence of wQL[0.5] and WAPE[median] metrics.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/wql-to-wape.PNG)


## 二乗平均平方根誤差 (RMSE)
<a name="metrics-RMSE"></a>

二乗平均平方根誤差 (RMSE) は、二乗誤差の平均の平方根であるため、他の精度メトリクスよりも外れ値の影響を受けやすくなります。値が小さいほど、モデルの精度が高くなります。

![\[Mathematical formula for Root Mean Square Error (RMSE) with summation and square root.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/metrics-rmse.png)


コードの説明は以下のとおりです。  
yi,t - ポイント (i,t) での観測値  
ŷi,t - ポイント (i,t) での予測値  
nT - テストセット内のデータポイントの数

Forecast は、平均予測を予測値 ŷi,t として使用します。予測子メトリクスを計算する場合、nT はバックテストウィンドウ内のデータポイントの数です。

RMSE は、外れ値の影響を増幅する残差の 2 乗値を使用します。非常に大きなコストを発生させる可能性があるのがいくつかの大きな誤予測だけであるユースケースでは、RMSE がより適切なメトリクスです。

2020 年 11 月 11 日より前に作成された予測子は、デフォルトで 0.5 分位数 (P50) を使用して RMSE を計算していました。Forecast は、平均予測を使用するようになりました。

## 平均絶対パーセント誤差 (MAPE)
<a name="metrics-mape"></a>

平均絶対パーセント誤差 (MAPE) は、各時間単位の観測値と予測値の間のパーセント誤差の絶対値を取得し、それらの値を平均します。値が小さいほど、モデルの精度が高くなります。

![\[Mathematical formula for Mean Absolute Percentage Error (MAPE) calculation.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/mape.png)


コードの説明は以下のとおりです。  
At - ポイント *t* での観測値  
Ft - ポイント *t* での予測値  
n - 時系列のデータポイントの数

Forecast は、平均予測を予測値 Ft として使用します。

MAPE は、値が時間ポイント間で大幅に異なり、外れ値が大きな影響を及ぼす場合に役立ちます。

## 平均絶対スケーリング誤差 (MASE)
<a name="metrics-mase"></a>

平均絶対スケーリング誤差 (MASE) は、平均誤差をスケーリング係数で除することによって計算されます。このスケーリング係数は、予測頻度に基づいて選択された季節性の値 *m* に依拠します。値が小さいほど、モデルの精度が高くなります。

![\[Mathematical formula for Mean Absolute Scaled Error (MASE) with summation and absolute value notations.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/mase.png)


コードの説明は以下のとおりです。  
Yt - ポイント *t* での観測値  
Yt-m - ポイント *t-m* での観測値  
ej - 点 *j* での誤差 (観測値 - 予測値)  
m - 季節性の値

Forecast は、平均予測を予測値として使用します。

MASE は、本質的に循環的であるか、季節的な特性を持つデータセットに最適です。例えば、夏季には需要が高く、冬季には需要が少ない商品の予測は、季節的な影響を考慮に入れることでより正確なものとなり得ます。

## 精度メトリクスのエクスポート
<a name="backtest-exports"></a>

**注記**  
エクスポートファイルは、[Dataset Import] (データセットのインポート) から直接情報を返すことができます。これにより、インポートされたデータに式またはコマンドが含まれている場合、ファイルは CSV インジェクションに対して脆弱になります。このため、エクスポートされたファイルはセキュリティ警告を表示する可能性があります。悪意のあるアクティビティを回避するには、エクスポートされたファイルを読み取るときにリンクとマクロを無効にします。

Forecast を使用すると、バックテスト中に生成された予測値と精度メトリクスをエクスポートできます。

これらのエクスポートを使用して、特定の時間ポイントおよび分位数で特定の項目を評価し、予測子をより良く理解できます。バックテストエクスポートは、指定された S3 の場所に送信され、2 つのフォルダを含みます。
+ **forecasted-values**: 各バックテストの各予想タイプでの予想値を含む CSV または Parquet ファイルが含まれています。
+ **accuracy-metrics-values**: すべてのバックテストの平均とともに、各バックテストのメトリクスを含む CSV または Parquet ファイルが含まれています。これらのメトリクスには、各分位数の wQL、平均 wQL、RMSE、MASE、MAPE、および WAPE が含まれます。

`forecasted-values` フォルダには、各バックテストウィンドウの各予測タイプの予測値が含まれています。また、項目 ID、ディメンション、タイムスタンプ、ターゲット値、およびバックテストウィンドウの開始時間と終了時間に関する情報も含まれています。

`accuracy-metrics-values` フォルダには、各バックテストウィンドウの精度メトリクスと、すべてのバックテストウィンドウの平均メトリクスが含まれています。これには、指定された各分位数の wQL メトリクスと、平均 wQL、RMSE、MASE、MAPE、および WAPE メトリクスが含まれます。

両方のフォルダ内のファイルは、命名規則に従います: `<ExportJobName>_<ExportTimestamp>_<PartNumber>.csv`。

Amazon Forecast のソフトウェア開発キット (SDK) および Amazon Forecast コンソールを使用して、精度メトリクスをエクスポートできます。

------
#### [ Forecast SDK ]

[`CreatePredictorBacktestExportJob`](API_CreatePredictorBacktestExportJob.md) オペレーションを使用して、[`DataDestination`](API_DataDestination.md) オブジェクト内の S3 の場所と IAM ロールを、`PredictorArn` および `PredictorBacktestExportJobName` とあわせて指定します。

例:

```
{
   "Destination": { 
      "S3Config": { 
         "Path": "s3://bucket/example-path/",
         "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole"
      }
   },
   "Format": PARQUET;
   "PredictorArn": "arn:aws:forecast:region:predictor/example",
   "PredictorBacktestExportJobName": "backtest-export-name",
}
```

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

**[Predictors]** (予測子) のページで予測子を選択します。**[Predictor metrics]** (予測子メトリクス) のセクションで、**[Export backtest results]** (バックテストの結果をエクスポート) を選択します。

**[Create predictor backtest export]** (予測子バックテストのエクスポートを作成) のステージで、**[Export name]** (エクスポート名)、**[IAM Role]** (IAM ロール)、および **[S3 predictor backtest export location]** (S3 予測子バックテストのエクスポート場所) のフィールドを設定します。

![\[Form for exporting predictor backtest data to S3, with fields for name, IAM role, and location.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/console-export-screen.PNG)


------

## Forecast タイプの選択
<a name="forecast-types"></a>

Amazon Forecast は、予測タイプを使用して予測を作成し、予測子を評価します。Forecast のタイプには、次の 2 つの形式があります。
+ **平均予測タイプ** - 平均を期待値として使用する予測。通常、特定の時間ポイントのポイント予測として使用されます。
+ **分位数の予測タイプ** - 指定された分位数での予測。通常、予測間隔を提供するために使用されます。これは、予測の不確実性を説明するための可能な値の範囲です。例えば、`0.65` 分位数での予測では、65% の確率で観測値よりも低い値が推定されます。

デフォルトでは、Forecast は、予測子の予測タイプに、`0.1` (P10)、`0.5` (P50)、および `0.9` (P90) といった値を使用します。`mean` と、`0.01` (P1) から `0.99` (P99) までの範囲の分位数を含む、最大 5 つのカスタム予測タイプを選択できます。

分位数は、予測の上限と下限を提供できます。例えば、予測タイプ `0.1` (P10) および `0.9` (P90) を使用すると、80% 信頼区間と呼ばれる値の範囲が提供されます。観測値は 10% の確率で P10 の値よりも低く、P90 の値は 90% の確率で観測値よりも高いことが予想されます。p10 と P90 で予測を生成することにより、true の値は、80% の確率でこれらの範囲内に収まることが想定されます。この値の範囲は、以下の図の P10 と P90 の間の影付きの領域で示されています。

![\[Graph showing forecast quantiles with P99, P90, P50, P10, and P1 lines over time.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/quantiles-intervals.png)


過小予測のコストが過大予測のコストと異なる場合は、分位数予測をポイント予測として使用することもできます。例えば、小売業のいくつかのケースにおいては、在庫不足のコストは、過剰に在庫を抱えている場合のコストよりも高くなります。これらの場合、0.65 (P65) での予測は、中央値 (P50) または平均予測よりも有益です。

予測子をトレーニングする場合、Amazon Forecast のソフトウェア開発キット (SDK) と Amazon Forecast コンソールを使用してカスタム予測タイプを選択できます。

------
#### [ Forecast SDK ]

[`CreateAutoPredictor`](API_CreateAutoPredictor.md) オペレーションを使用して、`ForecastTypes` パラメータでカスタム予想タイプを指定します。パラメータを文字列の配列としてフォーマットします。

例えば、`0.01`、`mean`、`0.65`、および `0.99` 予測タイプで予測子を作成するには、次のコードを使用します。

```
{
    "ForecastTypes": [ "0.01", "mean", "0.65", "0.99" ],
},
```

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

**[Train Predictor]** (Predictor をトレーニング) のステージで、**[Forecast types]** (予測のタイプ) のフィールドでカスタム予測タイプを指定します。**[Add new forecast type]** (新規予測タイプを追加) を選択して、予測タイプ値を入力します。

 例えば、`0.01`、`mean`、`0.65`、および `0.99` 予測タイプを使用して予測子を作成するには、以下に示す**[Forecast types]** (予測タイプ) のフィールドに次の値を入力します。

![\[Form for entering forecast types with fields for type names and quantile values between .01 and .99.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/predictor-custom-quantiles.png)


------

## レガシー予測子の使用
<a name="legacy-metrics"></a>

### バックテストパラメータの設定
<a name="backtesting-parameters"></a>

Forecast は、バックテストを使用して精度メトリクスを計算します。複数のバックテストを実行する場合、Forecast は、すべてのバックテストウィンドウで各メトリクスを平均します。デフォルトでは、Forecast は、1 つのバックテストを計算し、バックテストウィンドウ (テストセット) のサイズは予測期間 (予測ウィンドウ) の長さに等しくなります。予測子をトレーニングするときに、*バックテストウィンドウの長さ*と*バックテストシナリオの数*の両方を設定できます。

Forecast は、バックテストプロセスから入力された値を除外し、特定のバックテストウィンドウ内で値が入力された項目は、そのバックテストから除外されます。これは、Forecast がバックテスト中に予測値と観測値を比較するだけであり、入力された値は観測値ではないためです。

バックテストウィンドウは、少なくとも予測期間と同じ大きさであり、ターゲット時系列データセット全体の長さの半分よりも小さくなければなりません。1〜5 個のバックテストから選択できます。

![\[Graph showing training and testing periods for four backtest scenarios over time.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/evaluation-backtests.png)


一般に、バックテストの数を増やすと、テスト中に時系列の大部分が使用され、Forecast はすべてのバックテストのメトリクスの平均をとることができるため、より信頼性の高い精度メトリクスが生成されます。

Amazon Forecast のソフトウェア開発キット (SDK) および Amazon Forecast コンソールを使用して、バックテストパラメータを設定できます。

------
#### [ Forecast SDK ]

[CreatePredictor](API_CreatePredictor.md) オペレーションを使用して、[EvaluationParameters](API_EvaluationParameters.md) データ型にバックテストパラメータを設定します。`BackTestWindowOffset` パラメータを使用してバックテスト中に設定されたテストの長さを指定し、`NumberOfBacktestWindows` パラメータを使用してバックテストウィンドウの数を指定します。

例えば、10 個の時間ポイントのテストセットで 2 つのバックテストを実行するには、次のコードを使用します。

```
"EvaluationParameters": {
    "BackTestWindowOffset": 10,
    "NumberOfBacktestWindows": 2
}
```

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

**[Train Predictor]** (Predictor をトレーニング) のステージでは、バックテスト中に設定されたテストの長さを **[Backtest window offset]** (バックテストウィンドウオフセット) のフィールドで設定し、バックテストウィンドウの数を **[Number of backtest windows]** (バックテストウィンドウの数) のフィールドで設定します。

例えば、10 個の時間ポイントのテストセットで 2 つのバックテストを実行するには、次の値を設定します。

![\[Input fields for number of backtest windows and backtest window offset with example values.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/predictor-backtest-windows.png)


------

### HPO および AutoML
<a name="HPO-AutoML"></a>

デフォルトでは、Amazon Forecast は `0.1` (P10)、`0.5` (P50)、および `0.9` (P90) 分位数を使用して、ハイパーパラメータ最適化 (HPO) 中のハイパーパラメータチューニングと AutoML 中のモデル選択を行います。予測子の作成時にカスタム予測タイプを指定すると、Forecast は、HPO および AutoML 中にそれらの予測タイプを使用します。

カスタム予測タイプが指定されている場合、Forecast は、HPO および AutoML 中に、それらの指定された予測タイプを使用して最適な結果を決定します。HPO 中、Forecast は、最初のバックテストウィンドウを使用して最適なハイパーパラメータ値を見つけます。AutoML 中、Forecast は、すべてのバックテストウィンドウの平均と HPO からの最適なハイパーパラメータ値を使用して、最適なアルゴリズムを見つけます。

AutoML と HPO の両方について、Forecast は、予測タイプ全体の平均損失を最小化するオプションを選択します。AutoML および HPO 中に、平均重み付き分位損失 (平均 wQL)、重み付き絶対誤差率 (WAPE)、二乗平均平方根誤差 (RMSE)、平均絶対パーセント誤差 (MAPE)、または平均絶対スケーリング誤差 (MASE) といった精度メトリクスのいずれかを使用して予測子を最適化することもできます。

Amazon Forecast の ソフトウェア開発キット (SDK) と Amazon Forecast コンソールを使用して、最適化メトリクスを選択できます。

------
#### [ Forecast SDK ]

[`CreatePredictor`](API_CreatePredictor.md) オペレーションを使用して、`ObjectiveMetric` パラメータでカスタム予想タイプを指定します。

`ObjectiveMetric` パラメータには、次の値を指定できます。
+ `AverageWeightedQuantileLoss` - 平均重み付き分位損失
+ `WAPE` - 重み付き絶対誤差率
+ `RMSE` - 二乗平均平方根誤差
+ `MAPE` - 平均絶対パーセント誤差
+ `MASE` - 平均絶対スケーリング誤差 

例えば、AutoML を使用して予測子を作成し、平均絶対スケーリング誤差 (MASE) 精度メトリクスを使用して最適化するには、次のコードを使用します。

```
{
    ...
    "PerformAutoML": "true",
    ...
    "ObjectiveMetric": "MASE",
},
```

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

**[Train Predictor]** (Predictor をトレーニング) のステージ中、**[Automatic (AutoML)]** (自動 (AutoML)) を選択します。**[目的のメトリクス]** のセクションで、予測子の最適化に使用する精度メトリクスを選択します。

例えば、次の画像は、AutoML を使用して作成され、平均絶対スケーリング誤差 (MASE) 精度メトリクスを使用して最適化された予測子を示しています。

コンソールを使用する場合、AutoML を使用して予測子を作成するときにのみ、Objective メトリクスを指定できます。アルゴリズムを手動で選択した場合、HPO のために Objective メトリクスを指定することはできません。

------

# 予測子の再トレーニング
<a name="retrain-predictors"></a>

**注記**  
再トレーニングは、AutoPredictor ([`CreateAutoPredictor`](API_CreateAutoPredictor.md)) で作成された予測子でのみ使用できます。既存のレガシー予測子を AutoPredictor にアップグレードできます。「[AutoPredictor へのアップグレード](howitworks-predictor.md#upgrading-autopredictor)」を参照してください。

予測子を最新の状態に保つために、更新されたデータセットで予測子を保持できます。予測子を再トレーニングする場合、Amazon Forecast は、同じ予測子の構成設定を維持します。再トレーニング後も、元の予測子はアクティブなままで、再トレーニングされた予測子には個別の Predictor ARN があります。

予測子を再トレーニングすると、次の 2 つの方法で予測精度を向上させることができます。

1. **より最新のデータ**: 再トレーニングされた予測子は、モデルをトレーニングするときに、より最新のデータを組み込みます。

1. **予測子の改善**: 再トレーニングされた予測子には、Amazon Forecast アルゴリズムと追加のデータセットの更新と改善が組み込まれます。

予測子の再トレーニングでは、新しい予測子を最初から作成する場合と比較して、最大 50% の時間を短縮できます。Predictor のトレーニング時間はより短く、Forecast は既存の構成設定を自動的に使用します。

**Python ノートブック**  
予測子の再トレーニングに関するステップバイステップガイドについては、「[Retraining a predictor](https://github.com/aws-samples/amazon-forecast-samples/blob/main/notebooks/advanced/Retraining_AutoPredictor/Retraining.ipynb)」(予測子の再トレーニング) を参照してください。

ソフトウェア開発キット (SDK) または Amazon Forecast コンソールを使用して、予測子を再トレーニングできます。

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

**予測子を再トレーニングするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. 再学習する予測子を選択します。

1. **[Predictor actions]** (Predictor アクション) のドロップダウンで、**[Retrain]** (再トレーニング) を選択します。

1. アップグレードされた予測子の一意の名前を設定します。

1. **[Retrain predictor]** (予測子の再トレーニング) を選択します。

------
#### [ SDK ]

**予測子を再トレーニングするには**

[`CreateAutoPredictor`](API_CreateAutoPredictor.md) オペレーションを使用して、予測子に一意の名前を割り当て、再トレーニングする予測子に `ReferencePredictorArn` の値を設定します。

```
{
  "PredictorName": "RetrainedPredictor",
  "ReferencePredictorArn": "arn:aws:forecast:us-west-2:938097332257:predictor/OriginalPredictor"
}
```

予測子を再トレーニングするときは、`PredictorName` と `ReferencePredictorArn` パラメータのみに値を割り当てます。

------

# Weather Index
<a name="weather"></a>

Amazon Forecast の Weather Index はビルトインの特徴量化であり、履歴気象情報および予測される気象情報をモデルに組み込みます。これは、気温と降水量が製品需要に大きな影響を与える可能性がある小売業のユースケースで特に役立ちます。

Weather Index が有効になっている場合、Forecast は、予測子のトレーニング中に精度の向上が見られる時系列にのみ気象の特徴量化を適用します。時系列に気象情報を追加してもバックテスト中の予測精度が向上しない場合、Forecast はその特定の時系列に Weather Index を適用しません。

Weather Index を適用するには、ターゲットの時系列データセットおよび関連する時系列データセットに [geolocation 属性](#adding-geolocation)を含める必要があります。また、ターゲットの時系列タイムスタンプの[タイムゾーン](#specifying-timezones)を指定する必要があります。データセット要件の詳細については、「[条件と制約事項](#weather-conditions-restrictions)」を参照してください。

**Python ノートブック**  
Weather Index の使用に関するステップバイステップガイドについては、「[NY Taxi: Amazon Forecast with Weather Index](https://github.com/aws-samples/amazon-forecast-samples/tree/master/notebooks/advanced/Weather_index)」(NY タクシー: Weather Index を使用した Amazon Forecast) を参照してください。

**Topics**
+ [Weather Index の有効化](#enabling-weather)
+ [データセットへの geolocation の追加](#adding-geolocation)
+ [タイムゾーンの指定](#specifying-timezones)
+ [条件と制限](#weather-conditions-restrictions)

## Weather Index の有効化
<a name="enabling-weather"></a>

Weather Index は、予測子のトレーニング段階で有効になります。[`CreateAutoPredictor`](API_CreateAutoPredictor.md) オペレーションを使用する場合、Weather Index は [AdditionalDataset](API_AdditionalDataset.md) データ型に含まれます。

Weather Index を有効にする前に、ターゲットの時系列および関連する時系列データセットに geolocation 属性を含め、タイムスタンプのタイムゾーンを定義する必要があります。詳細については、「[Adding Geolocation Information](#adding-geolocation)」(geolocation 情報の追加) と「[Specifying Time Zones](#specifying-timezones)」(タイムゾーンの指定) を参照してください。

Forecast コンソールまたは Forecast ソフトウェア開発キット (SDK) を使用して、Weather Index を有効にできます。

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

**Weather Index を有効にするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. **[Train new predictor]** (新しい予測子のトレーニング) を選択します。

1. **[Enable Weather Index]** (Weather Index を有効化) を選択します。

------
#### [ SDK ]

**Weather Index を有効にするには**

[`CreateAutoPredictor`](API_CreateAutoPredictor.md) オペレーションを使用して、[AdditionalDataset](API_AdditionalDataset.md) データ型に `"Name": "weather"` と `"Value": "true"` を追加して Weather Index を有効にします。

```
    "DataConfig": { 
        ...
        "AdditionalDatasets": [
            ...                      
            {             
                "Name": "weather",       
            }      
            ]   
        },
```

------

## データセットへの geolocation の追加
<a name="adding-geolocation"></a>

Weather Index を使用するには、ターゲットの時系列データセットおよび関連する時系列データセットに各項目についての geolocation 属性を含める必要があります。属性は、データセットスキーマ内の `geolocation` 属性タイプで定義されます。

あるデータセット内のすべての geolocation の値は、単一のリージョン内にのみ存在する必要があります。リージョンは、米国 (ハワイ州とアラスカ州を除く)、カナダ、南米、中米、アジアパシフィック、欧州、アフリカおよび中東です。

次の 2 つの形式のいずれかで geolocation 属性を指定します。
+ **[Latitude & Longitude]** (緯度と経度) (すべてのリージョン) - 緯度と経度を 10 進数のフォーマットで指定します (例: 47.61\$1-122.33)
+ **郵便番号** (米国のみ) - 国コード (US) の後に 5 桁の郵便番号を指定します (例: US\$198121)

[Latitude & Longitude (緯度および経度)] の形式は、すべてのリージョンでサポートされています。[Postal code (郵便番号)] の形式は、米国リージョンでのみサポートされています。

**Topics**
+ [緯度と経度の境界](#geolocation-bounds)
+ [データセットスキーマに geolocation を含める](#geolocation-schema)
+ [geolocation フォーマットの設定](#geolocation-format)

### 緯度と経度の境界
<a name="geolocation-bounds"></a>

以下は、承認されたリージョンの緯度と経度の境界です。

------
#### [ US Region ]

**境界**: 緯度 (24.6, 50.0)、経度 (-126.0, -66.4)。

![\[Map of North America showing United States, parts of Canada and Mexico with major cities.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-us-bounds.png)


------
#### [ Canada Region ]

**境界**: 緯度 (41.0, 75.0)、経度 (-142.0, -52.0)。

![\[Map showing northern Canada and parts of the US, highlighting territories and major cities.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-can-bounds.PNG)


------
#### [ Europe Region ]

**境界**: 緯度 (34.8, 71.8)、経度 (-12.6, 44.8)。

![\[Map of Northern Europe and surrounding regions showing countries and major cities.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-euro-bounds.png)


------
#### [ South America Region ]

**境界**: 緯度 (-56.6, 14.0)、経度 (-82.4, -33.00)。

![\[Map of South America showing countries, major cities, and Brazilian states.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-sa-bounds.PNG)


------
#### [ Asia Pacific Region ]

**境界**: 緯度 (-47.8, 55.0)、経度 (67.0, 180.60)。

![\[Map showing East Asia, Southeast Asia, and Australia with country names and ocean labels.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-apac-bounds.png)


------
#### [ Central America Region ]

**境界**: 緯度 (6.80、33.20)、経度 (-118.80、-58.20)。

![\[Map showing southern US, Mexico, Central America, and Caribbean with major cities and bodies of water.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-ca-bounds.png)


------
#### [ Africa & Middle East Region ]

**境界**: 緯度 (-35.60, 43.40)、経度 (-18.80, -58.20)。

![\[Map showing North Africa, Middle East, and parts of Europe with country names and borders.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/weather-africa-bounds.png)


------

### データセットスキーマに geolocation を含める
<a name="geolocation-schema"></a>

コンソールまたは [CreateDataset](API_CreateDataset.md) オペレーションを使用して、ターゲット時系列および関連する時系列の JSON スキーマ内で場所の属性タイプを「geolocation」として定義します。スキーマの属性は、データセットに表示されるとおりに順序付けする必要があります。

```
 { 
  "Attributes":[
    {
       "AttributeName": "timestamp",
       "AttributeType": "timestamp"
    },
    {
       "AttributeName": "target_value",
       "AttributeType": "float"
    },
    {
       "AttributeName": "item_id",
       "AttributeType": "string"
    },
    {
       "AttributeName": "location",
       "AttributeType": "geolocation"
    }
  ]
}
```

### geolocation フォーマットの設定
<a name="geolocation-format"></a>

geolocation 属性の形式は、**[Postal Code]** (郵便番号) または **[Latitude & Longitude]** (緯度と経度) の形式にすることができます。Forecast コンソールまたは Forecast ソフトウェア開発キット (SDK) を使用して、 geolocation の形式を設定できます。

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

**時系列データセットに geolocation 属性を追加するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[データセットグループの作成]** を選択します。

1. **[Schema builder]** (スキーマビルダー) で、geolocation の **[Attribute type]** (属性タイプ) を `geolocation` に設定します。

1. **[Geoloocation フォーマット]** のドロップダウンで、ロケーションフォーマットを選択します。

![\[Dataset details form with name, frequency, and schema builder for attribute specification.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/schema-builder-geolocation.png)


また、JSON 形式で属性を定義し、**[Geolocation format]** (geolocation の形式) のドロップダウンから場所の形式を選択することもできます。

------
#### [ SDK ]

**時系列データセットに geolocation 属性を追加するには**

[CreateDatasetImportJob](API_CreateDatasetImportJob.md) オペレーションを使用して、`GeolocationFormat` の値を次のいずれかに設定します。
+ **[Latitude & longitude]** (緯度と経度) (すべてのリージョン): `"LAT_LONG"`
+ **郵便番号** (米国のみ): `"CC_POSTALCODE"`

例えば、緯度と経度の形式を指定するには、`CreateDatasetImportJob` リクエストに次の情報を含めます。

```
{
    ...
    "GeolocationFormat": "LAT_LONG"
}
```

------

## タイムゾーンの指定
<a name="specifying-timezones"></a>

Amazon Forecast にタイムゾーン情報を geolocation 属性と自動的に同期させるか、データセット全体に単一のタイムゾーンを手動で割り当てることができます。

**Topics**
+ [タイムゾーンを geolocation と自動的に同期する](#timezones-automatic)
+ [単一のタイムゾーンを手動で選択する](#timezones-manual)

### タイムゾーンを geolocation と自動的に同期する
<a name="timezones-automatic"></a>

このオプションは、複数のタイムゾーンのタイムスタンプを含み、それらのタイムスタンプが現地時間で表されるデータセットに最適です。Forecast は、項目の geolocation 属性に基づいて、ターゲット時系列データセット内のすべての項目にタイムゾーンを割り当てます。

Forecast コンソールまたは Forecast SDK を使用して、タイムスタンプを geolocation 属性と自動的に同期できます。

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

**タイムゾーンを geolocation 属性と同期するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. ナビゲーションペインで、**[Create dataset group]** (データセットグループを作成) を選択します。

1. **[Dataset import details]** (データセットのインポートの詳細) で、**[Sync time zone with location]** (タイムゾーンを場所と同期) を選択します。

![\[Dataset import form with fields for name, time zone, S3 data location, and IAM role.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/sync-timezone-with-geolocation.PNG)


------
#### [ SDK ]

**タイムゾーンを geolocation 属性と同期するには**

[CreateDatasetImportJob](API_CreateDatasetImportJob.md) オペレーションを使用して、`"UseGeolocationForTimeZone"` を `"true"` に設定します。

```
{
    ...
    "UseGeolocationForTimeZone": "true"
}
```

------

### 単一のタイムゾーンを手動で選択する
<a name="timezones-manual"></a>

**注記**  
米国リージョン、カナダリージョン、南米リージョン、中米リージョン、アジアパシフィックリージョン、欧州リージョン、アフリカおよび中東リージョン以外のタイムゾーンを手動で選択できます。ただし、すべての geolocation の値は、これらのいずれかのリージョン内にある必要があります。

このオプションは、すべてのタイムスタンプが単一のタイムゾーン内にあるデータセット、またはすべてのタイムスタンプが単一のタイムゾーンに正規化されているデータセットに最適です。このオプションを使用すると、データセット内のすべての項目に同じタイムゾーンが適用されます。

Weather Index では、以下のタイムゾーンを使用できます。

 **米国リージョン** 
+  America/Los\$1Angeles 
+  America/Phoenix 
+  America/Denver 
+  America/Chicago 
+  America/New\$1York 

 **カナダリージョン** 
+ America/Vancouver
+ America/Edmonton
+ America/Regina 
+ America/Winnipeg 
+ America/Toronto
+ America/Halifax
+ America/St\$1Johns

 **欧州リージョン** 
+ Europe/London 
+ Europe/Paris 
+ Europe/Helsinki 

 **南米リージョン** 
+ America/Buenos\$1Aires
+ America/Noronha
+ America/Caracas 

 **アジアパシフィックリージョン** 
+ Asia/Kabul 
+ Asia/Karachi 
+ Asia/Kolkata 
+ Asia/Kathmandu 
+ Asia/Dhaka 
+ Asia/Rangoon 
+ Asia/Bangkok 
+ Asia/Singapore 
+ Asia/Seoul 
+ Australia/Adelaide 
+ Australia/Melbourne 
+ Australia/Lord\$1Howe 
+ Australia/Eucla 
+ Pacific/Norfolk 
+ Pacific/Auckland 

 **中米** 
+ America/Puerto\$1Rico

 **アフリカおよび中東** 
+ Africa/Nairobi 
+ Asia/Tehran 
+ Asia/Dubai

 **その他** 
+ Pacific/Midway 
+ Pacific/Honolulu 
+ Pacific/Marquesas 
+ America/Anchorage 
+ Atlantic/Cape\$1Verde 
+ Asia/Anadyr 
+ Pacific/Chatham 
+ Pacific/Enderbury 
+ Pacific/Kiritimati 

データセット内の項目が受け入れられたリージョン内にあるが、タイムスタンプがそのリージョン外のタイムゾーンに標準化されている場合は、**[その他]** のリストからタイムゾーンを選択します。

有効なタイムゾーン名の完全なリストについては、「[Joda-Time library](http://joda-time.sourceforge.net/timezones.html)」(Joda-Time ライブラリ) を参照してください。

Forecast コンソールまたは Forecast SDK を使用して、データセットのタイムゾーンを手動で設定できます。

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

**データセットの単一のタイムゾーンを選択するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. ナビゲーションペインで、**[Create dataset group]** (データセットグループを作成) を選択します。

1. **[Dataset import details]** (データセットのインポートの詳細) で、**[Select time zone]** (タイムゾーンを選択) を選択します。

例えば、以下を使用して、ロサンゼルス時間 (パシフィック標準時) をデータセットに適用します。

![\[Dataset import form with fields for name, time zone, data location, and IAM role.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/select-timezone.PNG)


------
#### [ SDK ]

**データセットの単一のタイムゾーンを選択するには**

[CreateDatasetImportJob](API_CreateDatasetImportJob.md) オペレーションを使用して、`"TimeZone"` を有効なタイムゾーンに設定します。

例えば、以下を使用して、ロサンゼルス時間 (パシフィック標準時) をデータセットに適用します。

```
{
    ...
    "TimeZone": "America/Los_Angeles"
}
```

------

## 条件と制限
<a name="weather-conditions-restrictions"></a>

Weather Index を使用する場合は、次の条件と制約事項が適用されます。
+ **使用可能なアルゴリズム**: レガシー予測子を使用している場合、CNN-QR、DeepAR\$1、および Prophet アルゴリズムを使用して予測子をトレーニングすると、Weather Index を有効にできます。Weather Index は、ARIMA、ETS、および NPTS には適用されません。
+ **予想頻度**: 有効な予想頻度は、`Minutely`、`Hourly`、および `Daily` です。
+ **[Forecast horizon]** (予測期間) : 予測期間は、今後 14 日間を超えて設定することはできません。各予測頻度の予測期間の制限については、以下のリストを参照してください。
  + `1 minute` - 500
  + `5 minutes` - 500
  + `10 minutes` - 500
  + `15 minutes` - 500
  + `Hourly` - 330
  + `Daily` - 14
+ **時系列の長さ**: Weather Index を使用してモデルをトレーニングする場合、Forecast は、Forecast 気象データセットの特徴量化の開始日前のタイムスタンプを持つすべての時系列データセットを切り捨てます。Forecast weather データセットの機能には、次の開始日が含まれています。
  + **米国リージョン**: 2018 年 7 月 2 日
  + **欧州リージョン**: 2018 年 7 月 2 日
  + **アジアパシフィックリージョン**: 2018 年 7 月 2 日
  + **カナダリージョン**: 2019 年 7 月 2 日
  + **南米リージョン**: 2020 年 1 月 2 日
  + **中米リージョン**: 2020 年 9 月 2 日
  + **アフリカおよび中東リージョン**: 2021 年 3 月 25 日

  Weather Index を有効にすると、開始日の前のタイムスタンプを持つデータポイントは、予測子のトレーニング中に使用されません。
+ ****場所の数: ターゲット時系列データセットは、2000 の一意の場所を超えることはできません。
+ **リージョンの境界**: データセット内のすべてのアイテムは 1 つのリージョン内にある必要があります。
+ **[Minimum time series length]** (最小時系列長) : Weather Index をテストする際の追加のデータ要件により、時系列データセットの最小長は次のとおりです: 

  `3 × ForecastHorizon + (BacktestWindows + 1) × BacktestWindowOffset`

  時系列データセットがこの要件を満たしていない場合は、以下を減らすことを検討してください。
  + `ForecastHorizon` - 予測期間を短縮します。
  + `BacktestWindowOffset` - バックテスト中にテストセットの長さを短くします。
  + `BacktestWindows` - バックテストの数を減らします。

# Holidays の特徴量化
<a name="holidays"></a>

Holidays は、特徴エンジニアリングされた祝祭日情報データセットをモデルに組み込むビルトインの特徴量化です。250 か国を超える祝祭日カレンダーをネイティブにサポートします。Amazon Forecast には、ホリデーカレンダーを生成するための [Holiday API ライブラリ](https://holidayapi.com/countries)と [Jollyday API](https://jollyday.sourceforge.net/data.html) の両方が組み込まれています。

Holidays の特徴量化は、祝祭日が需要に大きな影響を与える可能性がある小売ドメインで特に役立ちます。

Holyday 特徴量化では、最小 5 分、最大 1 か月の予想頻度がサポートされます。

**Topics**
+ [Holidays の特徴量化の有効化](#enabling-holidays)
+ [国コード](#holidays-country-codes)
+ [追加の祝祭日カレンダー](#holiday-calendars)

## Holidays の特徴量化の有効化
<a name="enabling-holidays"></a>

Holidays の特徴量化は、[[Additional Dataset]](API_AdditionalDataset.md) (追加のデータセット) として Amazon Forecast に含まれており、予測子をトレーニングする前に有効になります。履歴データには少なくとも 2 年分のデータを含めることをお勧めします。これにより、Forecast は特定の休日に関連する需要パターンを特定できます。国を選択すると、Holidays は、トレーニング中にその国の祝祭日カレンダーをデータセット内のすべてのアイテムに適用します。

 Amazon Forecast コンソールまたは Forecast ソフトウェア開発キット (SDK) を使用して、Holidays を有効にできます。

------
#### [ Forecast SDK ]

[`CreateAutoPredictor`](API_CreateAutoPredictor.md) オペレーションを使用して、「`"Name": "holiday`"」を追加し、2 文字の国コードを `"CountryCode"` にマッピングするように `"Configuration"` を設定して、Holidays を有効にします。「[国コード](#holidays-country-codes)」を参照してください。

例えば、米国の祝祭日カレンダーを含めるには、次のコードを使用します。

```
      "DataConfig": {          
        "AdditionalDatasets": [          
            {             
                "Name": "holiday",            
                "Configuration": {
                    "CountryCode" : ["US"]
                }      
            },      
          ]   
        },
```

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

**[Train Predictor]** (Predictor をトレーニング) のステージで、**[Country for Holidays]** (Holidays の国) のドロップダウンから国を選択します。

![\[Toggle switch to activate holidays and dropdown menu to select a country for forecast accuracy.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/holidays-dropdown-2.png)


------

## 国コード
<a name="holidays-country-codes"></a>

 Amazon Forecast は、以下の国の祝祭日カレンダーのネイティブサポートを提供します。API で国を指定するときは、**[Country Code]** (国コード) を使用します。


**サポートされている国**  

| Country | 国コード | 
| --- | --- | 
|   アフガニスタン   |   AF   | 
|   オーランド諸島   |   AX   | 
|   アルバニア   |   AL   | 
|   アルジェリア   |   DZ   | 
|   アメリカ領サモア   |   AS   | 
|   アンドラ   |   AD   | 
|   アンゴラ   |   AO   | 
|   アンギラ   |   AI   | 
|   南極   |   AQ   | 
|   アンティグアバーブーダ   |   AG   | 
|   アルゼンチン   |   AR   | 
|   アルメニア   |   AM   | 
|   アルバ   |   AW   | 
|   オーストラリア   |   AU   | 
|   オーストリア   |   AT   | 
|   アゼルバイジャン   |   AZ   | 
|   バハマ諸島   |   BS   | 
|   バーレーン   |   BH   | 
|   バングラデシュ   |   BD   | 
|   バルバドス   |   BB   | 
|   ベラルーシ   |   BY   | 
|   ベルギー   |   BE   | 
|   ベリーズ   |   BZ   | 
|   ベニン   |   BJ   | 
|   バミューダ   |   BM   | 
|   ブータン   |   BT   | 
|   ボリビア   |   BO   | 
|   ボスニアヘルツェゴビナ   |   BA   | 
|   ボツワナ   |   BW   | 
|   ブーベ島   |   BV   | 
|   ブラジル   |   BR   | 
|   英領インド洋地域   |   IO   | 
|   英領バージン諸島   |   VG   | 
|   ブルネイ・ダルサラーム   |   BN   | 
|   ブルガリア   |   BG   | 
|   ブルキナファソ   |   BF   | 
|   ブルンジ   |   BI   | 
|   カンボジア   |   KH   | 
|   カメルーン   |   CM   | 
|   カナダ   |   CA   | 
|   カーボベルデ   |   CV   | 
|   オランダカリブ領域   |   BQ   | 
|   ケイマン諸島   |   KY   | 
|   中央アフリカ共和国   |   CF   | 
|   チャド   |   TD   | 
|   チリ   |   CL   | 
|   中国   |   CN   | 
|   クリスマス島   |   CX   | 
|   ココス (キーリング) 諸島   |   CC   | 
|   コロンビア   |   CO   | 
|   コモロ   |   KM   | 
|   クック諸島   |   CK   | 
|   コスタリカ   |   CR   | 
|   クロアチア   |   HR   | 
|   キューバ   |   CU   | 
|   キュラソー   |   CW   | 
|   キプロス   |   CY   | 
|   チェコ共和国   |   CZ   | 
|   コンゴ民主共和国   |   CD   | 
|   デンマーク   |   DK   | 
|   ジブチ   |   DJ   | 
|   ドミニカ   |   DM   | 
|   ドミニカ共和国   |   DO   | 
|   エクアドル   |   EC   | 
|   エジプト   |   EG   | 
|   エルサルバドル   |   SV   | 
|   赤道ギニア   |   GQ   | 
|   エリトリア   |   ER   | 
|   エストニア   |   EE   | 
|   エスワティニ   |   SZ   | 
|   エチオピア   |   ET   | 
|   フォークランド諸島   |   FK   | 
|   フェロー諸島   |   FO   | 
|   フィジー   |   FJ   | 
|   フィンランド   |   FI   | 
|   フランス   |   FR   | 
|   フランス領ギアナ   |   GF   | 
|   フランス領ポリネシア   |   PF   | 
|   フランス領南方・南極地域   |   TF   | 
|   ガボン   |   GA   | 
|   ガンビア   |   GM   | 
|   ジョージア   |   GE   | 
|   ドイツ   |   DE   | 
|   ガーナ   |   GH   | 
|   ジブラルタル   |   GI   | 
|   ギリシャ   |   GR   | 
|   グリーンランド   |   GL   | 
|   グレナダ   |   GD   | 
|   グアドループ   |   GP   | 
|   グアム   |   GU   | 
|   グアテマラ   |   GT   | 
|   ガーンジー代官管轄区   |   GG   | 
|   ギニア   |   GN   | 
|   ギニアビサウ   |   GW   | 
|   ガイアナ   |   GY   | 
|   ハイチ   |   HT   | 
|   ハード島とマクドナルド諸島   |   HM   | 
|   ホンジュラス   |   HN   | 
|   Hong Kong   |   HK   | 
|   ハンガリー   |   HU   | 
|   Iceland   |   IS   | 
|   インド   |   IN   | 
|   インドネシア   |   ID   | 
|   イラン   |   IR   | 
|   イラク   |   IQ   | 
|   アイルランド   |   IE   | 
|   マン島   |   IM   | 
|   イスラエル   |   IL   | 
|   イタリア   |   IT   | 
|   コートジボワール   |   CI   | 
|   ジャマイカ   |   JM   | 
|   日本   |   JP   | 
|   Jersey   |   JE   | 
|   ヨルダン   |   JO   | 
|   カザフスタン   |   KZ   | 
|   ケニア   |   KE   | 
|   キリバス   |   KI   | 
|   コソボ共和国   |   XK   | 
|   クウェート   |   KW   | 
|   キルギスタン   |   KG   | 
|   ラオス   |   LA   | 
|   ラトビア   |   LV   | 
|   レバノン   |   LB   | 
|   レソト   |   LS   | 
|   リベリア   |   LR   | 
|   リビア   |   LY   | 
|   リヒテンシュタイン   |   LI   | 
|   リトアニア   |   LT   | 
|   ルクセンブルグ   |   LU   | 
|   マカオ   |   MO   | 
|   マダガスカル   |   MG   | 
|   マラウイ   |   MW   | 
|   マレーシア   |   MY   | 
|   モルジブ   |   MV   | 
|   マリ   |   ML   | 
|   マルタ   |   MT   | 
|   マーシャル諸島共和国   |   MH   | 
|   マルチニーク   |   MQ   | 
|   モーリタニア   |   MR   | 
|   モーリシャス   |   MU   | 
|   マヨット   |   YT   | 
|   メキシコ   |   MX   | 
|   ミクロネシア   |   FM   | 
|   モルドバ   |   MD   | 
|   モナコ   |   MC   | 
|   モンゴル   |   MN   | 
|   モンテネグロ   |   ME   | 
|   Montserrat   |   MS   | 
|   モロッコ   |   MA   | 
|   モザンビーク   |   MZ   | 
|   ミャンマー   |   MM   | 
|   ナミビア   |   NA   | 
|   ナウル   |   NR   | 
|   ネパール   |   NP   | 
|   オランダ   |   NL   | 
|   ニューカレドニア   |   NC   | 
|   ニュージーランド   |   NZ   | 
|   ニカラグア   |   NI   | 
|   ニジェール   |   NE   | 
|   ナイジェリア   |   NG   | 
|   ニウエ   |   NU   | 
|   ノーフォーク島   |   NF   | 
|   北朝鮮   |   KP   | 
|   北マケドニア   |   MK   | 
|   北マリアナ諸島   |   MP   | 
|   ノルウェー   |   NO   | 
|   オマーン   |   OM   | 
|   パキスタン   |   PK   | 
|   パラオ   |   PW   | 
|   パレスチナ   |   PS   | 
|   パナマ   |   PA   | 
|   パプアニューギニア   |   PG   | 
|   パラグアイ   |   PY   | 
|   ペルー   |   PE   | 
|   フィリピン   |   PH   | 
|   ピトケアン諸島   |   PN   | 
|   ポーランド   |   PL   | 
|   ポルトガル   |   PT   | 
|   プエルトリコ   |   PR   | 
|   カタール   |   QA   | 
|   コンゴ共和国   |   CG   | 
|   レユニオン   |   RE   | 
|   ルーマニア   |   RO   | 
|   ロシア連邦   |   RU   | 
|   ルワンダ   |   RW   | 
|   サン・バルテルミー   |   BL   | 
|   セントヘレナ・アセンションおよびトリスタンダクーニャ   |   SH   | 
|   セントクリストファーネイビス   |   KN   | 
|   セントルシア   |   LC   | 
|   サン・マルタン島   |   MF   | 
|   サンピエール・ミクロン   |   PM   | 
|   セントビンセントおよびグレナディーン諸島   |   VC   | 
|   サモア   |   WS   | 
|   サンマリノ   |   SM   | 
|   サントメプリンシペ   |   ST   | 
|   サウジアラビア   |   SA   | 
|   セネガル   |   SN   | 
|   セルビア   |   RS   | 
|   セイシェル   |   SC   | 
|   シエラレオネ   |   SL   | 
|   シンガポール   |   SG   | 
|   シントマールテン   |   SX   | 
|   スロバキア   |   SK   | 
|   スロベニア   |   SI   | 
|   ソロモン諸島   |   SB   | 
|   ソマリア   |   SO   | 
|   南アフリカ   |   ZA   | 
|   サウスジョージア・サウスサンドウィッチ諸島   |   GS   | 
|   韓国   |   KR   | 
|   南スーダン   |   SS   | 
|   スペイン   |   ES   | 
|   スリランカ   |   LK   | 
|   スーダン   |   SD   | 
|   スリナム   |   SR   | 
|   スバールバル諸島およびヤンマイエン島   |   SJ   | 
|   スウェーデン   |   SE   | 
|   スイス   |   CH   | 
|   シリア・アラブ共和国   |   SY   | 
|   台湾   |   TW   | 
|   タジキスタン   |   TJ   | 
|   タンザニア   |   TZ   | 
|   タイ   |   TH   | 
|   東ティモール   |   TL   | 
|   トーゴ   |   TG   | 
|   トケラウ   |   TK   | 
|   トンガ   |   TO   | 
|   トリニダード・トバゴ   |   TT   | 
|   チュニジア   |   TN   | 
|   トルコ   |   TR   | 
|   トルクメニスタン   |   TM   | 
|   タークスおよびカイコス諸島   |   TC   | 
|   ツバル   |   TV   | 
|   ウガンダ   |   UG   | 
|   ウクライナ   |   UA   | 
|   アラブ首長国連邦   |   AE   | 
|   英国   |   GB   | 
|   国連   |   UN   | 
|   アメリカ   |   US   | 
|   合衆国領有小離島   |   UM   | 
|   アメリカ領バージン諸島   |   VI   | 
|   ウルグアイ   |   UY   | 
|   ウズベキスタン   |   UZ   | 
|   バヌアツ   |   VU   | 
|   バチカン市国   |   VA   | 
|   ベネズエラ   |   VE   | 
|   ベトナム   |   VN   | 
|   ウォリス・フツナ   |   WF   | 
|   西サハラ   |   EH   | 
|   イエメン   |   YE   | 
|   ザンビア   |   ZM   | 
|   ジンバブエ   |   ZW   | 

## 追加の祝祭日カレンダー
<a name="holiday-calendars"></a>

Amazon Forecast は、インド、韓国、およびアラブ首長国連邦の祝祭日もサポートしています。それらの祝祭日を以下に示します。

------
#### [ India - "IN" ]

1 月 26 日 - 共和国記念日 

8 月 15 日 - 独立記念日

10 月 2 日 - マハトマ・ガンジー生誕日

------
#### [ Korea - "KR" ]

1 月 1 日 - 新年 

3 月 1 日 - 独立運動記念日 

5 月 5 日 - こどもの日

6 月 6 日 - 戦没者慰霊日

8 月 15 日 - 解放記念日

10 月 3 日 - 建国記念日

10 月 9 日 - ハングルの日

12 月 25 日 - クリスマス

------
#### [ United Arab Emirates - "AE" ]

1 月 1 日 - 新年 

12 月 1 日 - 記念日

12 月 2～3 日 - 建国記念日

ラマダン\$1

断食明け大祭\$1

犠牲祭\$1

イスラーム暦新年\$1

\$1イスラムの祝祭日は月の周期によって決まります。

------

# Predictor Explainability
<a name="predictor-explainability"></a>

Predictor Explainability は、データセット内の属性がターゲット変数にどのように影響するかをよりよく理解するのに役立ちます。Forecast は、Impact スコアと呼ばれるメトリクスを使用して、各属性の相対的な影響を定量化し、それらが予測値を増加させるか減少させるかを決定します。

例えば、ターゲットが `sales` であり、`price` および `color` といった関連する 2 つの属性がある予測シナリオについて考えてみます。Forecast では、商品の価格が売上に大きく影響する (Impact スコアが高い) が、アイテムの色による影響はごくわずか (Impact スコアが低い) であることが判明する場合があります。

Predictor Explainability を有効にするには、関連する時系列、項目メタデータ、または祝祭日や Weather Index などの追加のデータセットの少なくとも 1 つを予測子に含める必要があります。詳細については「[制約事項とベストプラクティス](#predictor-explainability-best-practices)」を参照してください。

特定の時系列および時間ポイントの Impact スコアを作成するには、Predictor Explainability ではなく Forecast Explainability を使用します。「[Forecast Explainability](forecast-explainability.md)」を参照してください。

**Topics**
+ [影響スコアの解釈](#predictor-explainability-impact-scores)
+ [Predictor Explainability の作成](#creating-predictor-explainability)
+ [Predictor Explainability のエクスポート](#exporting-predictor-explainability)
+ [制約事項とベストプラクティス](#predictor-explainability-best-practices)

## 影響スコアの解釈
<a name="predictor-explainability-impact-scores"></a>

影響スコアは、予測値に対する相対的な影響属性を測定します。例えば、「price」属性の影響スコアが「store location」属性の 2 倍である場合、商品の料金は、予測値に対して、店舗の場所の 2 倍の影響を及ぼすと結論付けることができます。

 影響スコアは、属性が予測値を増加させるか減少させるかに関する情報も提供します。コンソールでは、これは 2 つのグラフで示されます。青いバーのある属性は予測値を増やし、赤いバーのある属性は予測値を減らします。

![\[Bar graphs showing Price and Promo increasing impact scores, StoreLocation decreasing impact score.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/quicksight-unfiltered.png)


コンソールでは、Impact スコアの範囲は 0 から 1 です。ここで、スコア 0 は影響がないことを示し、スコアが 1 に近づくほど、その影響が重大であることを示します。SDK では、Impact スコアの範囲は -1 から 1 で、記号は影響の方向を示します。

Impact スコアは、絶対的な影響ではなく、属性の相対的な影響を測定することに注意することが重要です。したがって、Impact スコアで、特定の属性がモデルの精度が向上するかどうかを判断することはできません。属性の Impact スコアが低い場合、それは必ずしも予測値への影響が少ないことを意味するわけではありません。これは、予測子が使用する他の属性よりも予測値への影響が少ないことを意味します。

## Predictor Explainability の作成
<a name="creating-predictor-explainability"></a>

**注記**  
予測子ごとに最大 1 つの Predictor Explainability を作成できます

Predictor Explainability を有効にすると、Amazon Forecast は、データセット内のすべての属性の Impact スコアを計算します。Impact スコアは、影響属性が全体的な予測値に与える影響として解釈できます。予測子を作成するときに Predictor Explainability を有効にするか、予測子を作成した後に特徴を有効にすることができます。

### 新しい予測子向けの Predictor Explainability の有効化
<a name="creating-predictor-explainability-new"></a>

新しい予測子を作成するときに Predictor Explainability を有効にすると、Predictor のリソースと Explainability のリソースの両方が作成されます。ソフトウェア開発キット (SDK) または Amazon Forecast コンソールを使用して、新しい予測子の Predictor Explainability を有効にできます。

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

**Predictor Explainability を有効にするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. **[Train new predictor]** (新しい予測子のトレーニング) を選択します。

1. **[Predictor configuration]** (予測子の設定) のセクションで、**[Enable Explainability]** (Explainability を有効化) を選択します。

1. 以下の必須フィールドに値を入力します。
   + **名前** - 一意の予測子名。
   + **予測頻度** - 予測の粒度。
   + **[Forecast horizon]** (予測期間) - 予測するタイムステップの数。

1. [**Start (開始)**] を選択

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

SDK for Python (Boto3) で新しい予測子の Explainability を有効にするには、`create_auto_predictor` メソッドを使用して、ExplainPredictor を true に設定します。

次のコードでは、今後 24 (`ForecastHorizon`) 日 (`ForecastFrequency`) の予測を行う自動予測子を作成し、`ExplainPredictor` が true に設定されています。必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

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

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ForecastHorizon = 24,
    ForecastFrequency = 'D',
    DataConfig = {
        "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName"
    },
    ExplainPredictor = True
)
```

------

### 既存の予測子向けの Predictor Explainability の有効化
<a name="creating-predictor-explainability-old"></a>

既存の予測子向けに Predictor Explainability を有効にすると、そのリソース用に Explainability のリソースが作成されます。Explainability リソースがまだ含まれていない予測子についてのみ Explainability リソースを作成できます。更新されたデータセットの Impact スコアを表示するには、更新されたデータを使用して予測子を再トレーニングまたは再作成します。

ソフトウェア開発キット (SDK) または Amazon Forecast コンソールを使用して、新しい予測子の Predictor Explainability を有効にできます。

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

**Predictor Explainability を有効にするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. 予測子を選択します。

1. **[Predictor Explainability]** のセクションで、**[Enable Explainability]** (Explainability を有効化) を選択します。

1. Predictor Explainability の一意の名前を指定します。

1. [**Start (開始)**] を選択

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

SDK for Python (Boto3) で既存の予測子の Predictor Explainability を有効にするには、`create_explainability` メソッドを使用します。Explainability の名前と予測子の ARN を指定し、`ExplainabilityConfig` は `TimePointGranularity` と `TimeSeriesGranularity` の両方を **ALL** に設定します。コンソール内で表示できる Explainability ビジュアライゼーションを作成するには、`EnableVisualization` を **True** に設定します。

必須とオプションのパラメータの詳細については、「[CreateExplainability](API_CreateExplainability.md)」を参照してください。

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

create_explainability_response = forecast.create_explainability(
    ExplainabilityName = 'explainability_name',
    ResourceArn = 'arn:aws:forecast:region:accountNumber:predictor/predictorName',
    ExplainabilityConfig = { 
      "TimePointGranularity": "ALL",
      "TimeSeriesGranularity": "ALL"
    },
    EnableVisualization = True
)
```

------

## Predictor Explainability のエクスポート
<a name="exporting-predictor-explainability"></a>

**注記**  
エクスポートファイルは、[Dataset Import] (データセットのインポート) から直接情報を返すことができます。これにより、インポートされたデータに式またはコマンドが含まれている場合、ファイルは CSV インジェクションに対して脆弱になります。このため、エクスポートされたファイルはセキュリティ警告を表示する可能性があります。悪意のあるアクティビティを回避するには、エクスポートされたファイルを読み取るときにリンクとマクロを無効にします。

Forecast を使用すると、Impact スコアの CSV または Parquet ファイルを S3 の場所にエクスポートできます。Impact スコアの範囲は -1 から 1 で、記号は影響の方向を示します。Amazon Forecast のソフトウェア開発キット (SDK) および Amazon Forecast コンソールを使用して、Impact スコアをエクスポートできます。

![\[Table showing normalized impact scores for price, promotion, weather index, and US holidays.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/explainability-global.png)


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

**Predictor Explainability をエクスポートするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. 予測子を選択します。

1. **[Predictor Explainability]** のセクションで、**[Export]** (エクスポート) を選択します。

1. **[Export name]** (エクスポート名) のフィールドで、エクスポートの一意の名前を入力します。

1. **[S3 explainability export location]** (S3 の Explainability のエクスポート場所) のフィールドで、CSV ファイルをエクスポートするための S3 の場所を指定します。

1. **[IAM Role]** (IAM ロール) のフィールドで、指定された S3 の場所へのアクセス権を持つロールを提供します。

1. **[Create Export]** (エクスポートを作成) を選択します。

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

SDK for Python (Boto3) で Predictor Explainability をエクスポートするには、`create_explainability_export` メソッドを使用します。ジョブに名前を付け、Explainability の ARN を指定し、`Destination` オブジェクトに Amazon S3 の宛先ロケーションと IAM サービスロールを指定します。

必須とオプションのパラメータの詳細については、「[CreateExplainabilityExport](API_CreateExplainabilityExport.md)」を参照してください。

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

export_response = forecast.create_explainability_export(
    Destination = {
        "S3Config": {
            "Path": "s3://bucketName/filename.csv",
            "RoleArn": "arn:aws:iam::accountNumber:role/roleName"
        }
    },
    ExplainabilityArn = 'arn:aws:forecast:region:accountNumber:explainability/explainabilityName',
    ExplainabilityExportName = 'job_name'
)
```

------

## 制約事項とベストプラクティス
<a name="predictor-explainability-best-practices"></a>

Predictor Explainability を使用する場合は、次の制約事項とベストプラクティスを考慮してください。
+ **Predictor Explainability は、AutoPredictor で作成された一部の予測子でのみ使用できます**。AutoML または手動選択で作成されたレガシー予測子に対して Explainability を有効にすることはできません。「[Upgrading to AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)」(AutoPredictor へのアップグレード) を参照してください。
+ **Predictor Explainability はすべてのモデルで利用できるわけではありません** - ARIMA (AutoRegressive Integrated Moving Average)、ETS (Exponential Smoothing State Space Model)、および NPTS (Non-Parametric Time Series) モデルには、外部時系列データが組み込まれていません。したがって、これらのモデルは、追加のデータセットを含めていても、説明可能性レポートを作成しません。
+ **Explainability には属性が必要** - 予測子には、関連する時系列、項目メタデータ、Holidays、または Weather Index の少なくとも 1 つを含める必要があります。
+ **予測子は 1 つの Explainability リソースに制限されている** - 1 つの予測子のために複数の Explainability リソースを作成することはできません。更新されたデータセットの Impact スコアに関心がある場合は、予測子を再トレーニングします。
+ **影響スコアがゼロの場合は影響がないことが示唆されている** - 属性の影響スコアが 0 の場合、その属性は予測値に大きな影響を与えません。
+ **失敗した Predictor Explainability ジョブの再試行** - Forecast が Predictor を正常に作成したが、Predictor Explainability ジョブが失敗した場合は、コンソールまたは CreateExplainability オペレーションで Predictor Explainability の作成を再試行できます。
+ **特定の時間ポイントおよび時系列の Impact スコアの作成不可** - 特定の時間ポイントおよび時系列の Impact スコアを表示するには、「[Forecast Explainability](forecast-explainability.md)」を参照してください。
+ **予測子の Explainability のビジュアライゼーションが作成後 90 日間利用可能** - 90 日後にビジュアライゼーションを表示するには、予測子を再トレーニングします。

# 予測子のモニタリング
<a name="predictor-monitoring"></a>

**注記**  
 予測子モニタリングを有効にすると、Amazon Forecast は、予想データを削除した後でも、予測子のパフォーマンス分析のために各予想のデータを保存します。このデータを削除するには、モニタリングリソースを削除します。

 予測子モニタリングにより、予測子のパフォーマンスが時間の経過とともにどのように変化するかを確認できます。経済発展や顧客行動の変化など、さまざまな要因が業績の変化を引き起こす可能性があります。

 例えば、ターゲットが `sales` であり、`price` および `color` といった関連する 2 つの属性がある予測シナリオについて考えてみます。最初の予測子を作成してから数か月以内に、特定の色が予想外に顧客の間で人気が高まる可能性があります。これにより、この属性を持つ商品の売り上げが伸びる可能性があります。この新しいデータは、予測子のパフォーマンスと、予測子が生成する予想の精度に影響を与える可能性があります。

 予測子モニタリングを有効にすると、予想を生成してより多くのデータをインポートするにつれて、予測子のパフォーマンスが Forecast によって分析されます。Forecast は、新しいデータを以前の予想と比較して、パフォーマンスの変化を検出します。Forecast コンソールでは、さまざまな精度メトリクスが時間の経過と共にどのように変化したかを示すグラフを表示できます。また、[ListMonitorEvaluations](API_ListMonitorEvaluations.md) オペレーションによってモニタリング結果を取得することもできます。

 予測子モニタリングは、予測子を再トレーニングする時期かどうかを判断するのに役立ちます。パフォーマンスが低下している場合は、より新しいデータで予測子を再トレーニングしたほうがいいかもしれません。予測子を再トレーニングすることを選択した場合、新しい予測子には前の予測子のモニタリングデータが含まれます。また、予測子モニタリングを使用して、実稼働環境に関するコンテキストデータを収集したり、さまざまな実験の比較を行ったりすることもできます。

予測子モニタリングは AutoPredictors でのみ使用できます。既存のレガシー予測子を AutoPredictor にアップグレードできます。「[Upgrading to AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)」(AutoPredictor へのアップグレード) を参照してください。

**Topics**
+ [予測子モニタリングワークフロー](#predictor-monitoring-workflow)
+ [予測子モニタリングを有効にする](enabling-predictor-monitoring.md)
+ [モニタリング結果の表示](predictor-monitoring-results.md)
+ [制約事項とベストプラクティス](#predictor-monitoring-best-practices)

## 予測子モニタリングワークフロー
<a name="predictor-monitoring-workflow"></a>

予測子のモニタリング結果を得るには、まず予測子を使用して予測を生成し、さらにデータをインポートする必要があります。モニタリングワークフローは次のとおりです。

1. 自動予測子の予測子モニタリングを有効にします。
   + モニタリングを有効にして新しい予測子を作成します。「[新しい予測子の予測子モニタリングを有効にする](enabling-predictor-monitoring.md#enabling-predictor-monitoring-new)」を参照してください。
   + または、既存の予測子のモニタリングを有効にします。「[既存の予測子の予測子モニタリングを有効にする](enabling-predictor-monitoring.md#enabling-predictor-monitoring-existing)」を参照してください。

1. 予測子を使用して 1 つ以上の予想を生成します。

1. 追加のデータをインポートする。Forecast へのデータのインポートの詳細については、「[データセットのインポート](howitworks-datasets-groups.md)」を参照してください。

1. 予測子のモニタリング結果を表示する:
   + 予測子の **[モニタリング]** タブで結果を表示できます。
   + また、[ListMonitorEvaluations](API_ListMonitorEvaluations.md) オペレーションによってモニタリング結果を取得することもできます。

   詳細については、「[モニタリング結果の表示](predictor-monitoring-results.md)」を参照してください。

# 予測子モニタリングを有効にする
<a name="enabling-predictor-monitoring"></a>

予測子を作成するとき、または既存の予測子に対して予測子モニタリングを有効にすることができます。

**注記**  
予測子モニタリングは AutoPredictors でのみ使用できます。既存のレガシー予測子を AutoPredictor にアップグレードできます。「[Upgrading to AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)」(AutoPredictor へのアップグレード) を参照してください。

**Topics**
+ [新しい予測子の予測子モニタリングを有効にする](#enabling-predictor-monitoring-new)
+ [既存の予測子の予測子モニタリングを有効にする](#enabling-predictor-monitoring-existing)

## 新しい予測子の予測子モニタリングを有効にする
<a name="enabling-predictor-monitoring-new"></a>

コンソール、、SDK AWS CLI、および [CreateAutoPredictor](API_CreateAutoPredictor.md)オペレーションを使用して、新しい予測子の予測子モニタリングを有効にできます。 AWS SDKs

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

**予測子モニタリングを有効にするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. **[Train new predictor]** (新しい予測子のトレーニング) を選択します。

1. **[予測子の設定]** のセクションで、**[モニタリングを有効化]** を選択します。

1. 以下の必須フィールドに値を入力します。
   + **名前** - 一意の予測子名。
   + **予測頻度** - 予測の粒度。
   + **[Forecast horizon]** (予測期間) - 予測するタイムステップの数。

1. **[開始]** を選択して、モニタリングを有効にした自動予測子を作成します。予測子を使用して予測を生成し、さらにデータをインポートすると、モニタリング結果が表示されます。

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

SDK for Python (Boto3) で新しい予測子の予測子モニタリングを有効にするには、`create_auto_predictor` メソッドを使用し、`MonitoringConfig` にモニター名を指定します。

次のコードでは、今後 24 (`ForecastHorizon`) 日 (`ForecastFrequency`) の予測を行う自動予測子を作成し、`MyPredictorMonitor` が `MonitorName` として指定されています。予想を生成し、さらにデータをインポートすると、予測子モニタリング結果が表示されます。結果の取得の詳細については、「[モニタリング結果の表示](predictor-monitoring-results.md)」を参照してください。

 予測子作成の必須とオプションのパラメータの詳細については、「[CreateAutoPredictor](API_CreateAutoPredictor.md)」を参照してください。

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

create_predictor_response = forecast.create_auto_predictor(
    PredictorName = 'predictor_name',
    ForecastHorizon = 24,
    ForecastFrequency = 'D',
    DataConfig = {
        "DatasetGroupArn": "arn:aws:forecast:region:account:dataset-group/datasetGroupName"
    },
    MonitorConifg = {
        "MonitorName": "MyMonitorName"
    }
)
```

------

## 既存の予測子の予測子モニタリングを有効にする
<a name="enabling-predictor-monitoring-existing"></a>

コンソール、、および AWS SDKs を使用して AWS CLI、既存の予測子の予測子モニタリングを有効にできます。

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

**予測子モニタリングを有効にするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. 予測子を選択します。

1. **[モニタリング]** タブに移動します。

1. **[モニタリングの詳細]** セクションで、**[モニタリングを開始]** を選択します。

   **[モニタリングステータス]** が [アクティブ] の場合、予測子モニタリングが有効です。予想を生成し、さらにデータをインポートすると、予測子モニタリング結果が表示されます。詳細については「[モニタリング結果の表示](predictor-monitoring-results.md)」を参照してください。

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

SDK for Python (Boto3) で既存の予測子の予測子モニタリングを有効にするには、`create_monitor` メソッドを使用します。モニタリングの名前を指定し、`ResourceArn` にモニタリングする予測子の Amazon リソースネーム (ARN) を指定します。`describe_monitor` メソッドを使用してモニター ARN を指定し、モニターのステータスを取得します。予想を生成し、さらにデータをインポートすると、予測子モニタリング結果が表示されます。詳細については、「[モニタリング結果の表示](predictor-monitoring-results.md)」を参照してください。

必須とオプションのパラメータの詳細については、「[CreateMonitor](API_CreateMonitor.md)」と「[DescribeMonitor](API_DescribeMonitor.md)」を参照してください。

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

create_monitor_response = forecast.create_monitor(
    MonitorName = 'monitor_name',
    ResourceArn = 'arn:aws:forecast:region:accountNumber:predictor/predictorName'
)

monitor_arn = create_monitor_response['MonitorArn']

describe_monitor_response = forecast.describe_monitor(
    MonitorArn = monitor_arn
)
print("Monitor status: " + describe_monitor_response['Status'])
```

------

# モニタリング結果の表示
<a name="predictor-monitoring-results"></a>

予想を生成し、さらにデータをインポートすると、予測子モニタリング結果が表示されます。Forecast コンソールを使用して結果を可視化することも、[ListMonitorEvaluations](API_ListMonitorEvaluations.md) オペレーションを使用して結果をプログラム的に取得することもできます。

 Forecast コンソールには、各[予測子メトリクス](metrics.md)の結果のグラフが表示されます。グラフには、予測子と予測子のイベント (再トレーニングなど) の存続期間における各メトリクスの変化が含まれます。

 [ListMonitorEvaluations](API_ListMonitorEvaluations.md) オペレーションでは、さまざまな期間のメトリクス結果と予測イベントが返されます。

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

**予測子のモニタリング結果を表示するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/forecast/](https://console.aws.amazon.com/forecast/) で Amazon Forecast コンソールを開きます。

1. **[Dataset groups]** (データセットグループ) から、データセットグループを選択します。

1. ナビゲーションペインで、**[Predictors]** (予測子) を選択します。

1. 予測子を選び、**[モニタリング]** タブを選択します。
   +  **[モニタリング結果]** セクションには、さまざまな精度メトリクスが時間の経過とともにどのように変化したかが示されます。ドロップダウンリストを使用して、グラフが追跡する指標を変更します。
   + **[モニタリング履歴]** セクションには、結果で追跡されたさまざまなイベントの詳細が一覧表示されます。

    以下は、予測子の `Avg wQL` スコアが時間の経過とともにどのように変化したかを示すグラフの例です。このグラフでは、`Avg wQL` 値が時間とともに増加していることがわかります。この増加は、予測子の精度が低下していることを示しています。この情報を使用して、モデルを再検証して対策を講じる必要があるかどうかを判断します。  
![\[Graph showing increasing Avg wQL score over time, indicating decreasing predictor accuracy.\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/predictor-drift.png)

------
#### [ SDK for Python (Boto3) ]

 SDK for Python (Boto3) でモニタリング結果を取得するには、`list_monitor_evaluations` メソッドを使用します。モニターの Amazon リソースネーム (ARN) を指定し、オプションで取得する結果の最大数を `MaxResults` パラメータで指定します。オプションで `Filter` を指定して結果をフィルタリングします。`SUCCESS` または `FAILURE` のいずれかの `EvaluationState` で評価をフィルタリングできます。次のコードでは、モニタリング評価が最大 20 回成功します。

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

monitor_results = forecast.list_monitor_evaluations(
    MonitorArn = 'monitor_arn',
    MaxResults = 20,
    Filters = [ 
      { 
         "Condition": "IS",
         "Key": "EvaluationState",
         "Value": "SUCCESS"
      }
   ]
)
print(monitor_results)
```

 以下に、JSON レスポンスの例を示します。

```
{
  "NextToken": "string",
  "PredictorMonitorEvaluations": [
    {
      "MonitorArn": "MonitorARN",
      "ResourceArn": "PredictorARN",
      "EvaluationTime": "2020-01-02T00:00:00Z",
      "EvaluationState": "SUCCESS",
      "WindowStartDatetime": "2019-01-01T00:00:00Z",
      "WindowEndDatetime": "2019-01-03T00:00:00Z",
      "PredictorEvent": {
        "Detail": "Retrain",
        "Datetime": "2020-01-01T00:00:00Z"
      },
      "MonitorDataSource": {
        "DatasetImportJobArn": "arn:aws:forecast:region:accountNumber:dataset-import-job/*",
        "ForecastArn": "arn:aws:forecast:region:accountNumber:forecast/*",
        "PredictorArn": "arn:aws:forecast:region:accountNumber:predictor/*",
      
      },
      "MetricResults": [
        {
          "MetricName": "AverageWeightedQuantileLoss",
          "MetricValue": 0.17009070456599376
        },
        {
          "MetricName": "MAPE",
          "MetricValue": 0.250711322309796
        },
        {
          "MetricName": "MASE",
          "MetricValue": 1.6275608734888485
        },
        {
          "MetricName": "RMSE",
          "MetricValue": 3100.7125081405547
        },
        {
          "MetricName": "WAPE",
          "MetricValue": 0.17101159704738722}
      ]
    }
  ]
}
```

------

## 制約事項とベストプラクティス
<a name="predictor-monitoring-best-practices"></a>

予測子モニタリングを使用する場合は、次の制約事項とベストプラクティスを考慮してください。
+ **予測子モニタリングは自動予測子でのみ使用可能** - AutoML で、または手動選択を通じて作成されたレガシー予測子のモニタリングを有効にすることはできません。「[Upgrading to AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)」(AutoPredictor へのアップグレード) を参照してください。
+ **予測子モニタリングは自動予測子ごとに異なる** - 自動予測子ごとに作成できるモニターは 1 つだけです。
+ **予測子モニタリングには新しいデータと予測の生成が必要** — 新しい予測の生成に使用される新しいデータをインポートすると、予測子モニタリングの結果が利用可能になります。新しいデータをインポートしない場合や、新しくインポートしたデータが予測期間全体を網羅していない場合、モニタリング結果は表示されません。
+ **予測子モニタリングには新しい予測が必要** — モニタリング結果を生成するには、新しい予測を継続的に生成する必要があります。新しい予測を生成しなければ、モニタリング結果は表示されません。
+  **Amazon Forecast は、予測子のパフォーマンス分析のために各予想のデータを保存** - 予測を削除しても、Forecast でこれらのデータは保存されます。これらのデータを削除するには、関連するモニターを削除します。
+ [StopResource](API_StopResource.md) オペレーションにより、現在の評価と将来の評価がすべて停止されます。
+ avgWQL メトリクスは、平均以外の分位数の予想を生成する場合にのみ使用できます。
+ 進行中のモニター評価は [ListMonitorEvaluations](API_ListMonitorEvaluations.md) オペレーションには表示されません。

# Amazon Forecast アルゴリズム
<a name="aws-forecast-choosing-recipes"></a>

Amazon Forecast の予測子は、アルゴリズムを使用して、時系列データセットを使用してモデルをトレーニングします。その後、トレーニングされたモデルを使用して、メトリクスと予測を生成します。

 モデルのトレーニングに使用するアルゴリズムがわからない場合は、予測子を作成するときに AutoML を選択し、Forecast がデータセットに最適なモデルをトレーニングするようにします。それ以外の場合は、Amazon Forecast のいずれかのアルゴリズムを手動で選択できます。

**Python ノートブック**  
AutoML の使用に関するステップバイステップガイドについては、「[Getting Started with AutoML](https://github.com/aws-samples/amazon-forecast-samples/blob/master/notebooks/advanced/Getting_started_with_AutoML/Getting_started_with_AutoML.ipynb)」(AutoML の開始方法) を参照してください。

## ビルトイン Forecast アルゴリズム
<a name="forecast-algos"></a>

 Amazon Forecast では、6 つのビルトインアルゴリズムが用意されており、それらの中から選択できます。これらは、自己回帰和分移動平均 (ARIMA) のような一般的に使用される統計アルゴリズムから、CNN-QR や DeepAR\$1 のような複雑なニューラルネットワークアルゴリズムにまで及びます。

### [CNN-QR](aws-forecast-algo-cnnqr.md)
<a name="cnnqr"></a>

 `arn:aws:forecast:::algorithm/CNN-QR` 

 Amazon Forecast CNN-QR、畳み込みニューラルネットワーク - 分位点回帰は、因果畳み込みニューラルネットワーク (CNN) を使用して時系列を予測するための独自の機械学習アルゴリズムです。CNN-QR は、数百の時系列を含む大規模なデータセットで最適に機能します。項目のメタデータを受け入れ、将来の値なしで関連する時系列データを受け入れる唯一の Forecast のアルゴリズムです。

### [DeepAR\$1](aws-forecast-recipe-deeparplus.md)
<a name="deeparplus"></a>

`arn:aws:forecast:::algorithm/Deep_AR_Plus`

 Amazon Forecast DeepAR は、再帰型ニューラルネットワーク (RNN) を使用して時系列を予測するための、独占的な機会学習アルゴリズムです。DeepAR\$1 は、数百の特徴時系列を含む大規模なデータセットで最適に機能します。このアルゴリズムは、フォワードルックの関連する時系列と項目メタデータを受け入れます。

### [Prophet](aws-forecast-recipe-prophet.md)
<a name="prophet"></a>

`arn:aws:forecast:::algorithm/Prophet`

 Prophet は、非線形トレンドが年次、週次、および日次の季節性に適合する加法モデルに基づく時系列予測アルゴリズムです。これは、季節性の強い効果といくつかの季節の履歴データを持つ時系列で最適に機能します。

### [NPTS](aws-forecast-recipe-npts.md)
<a name="npts"></a>

`arn:aws:forecast:::algorithm/NPTS`

 Amazon Forecast ノンパラメトリック時系列 (NPTS) の独占的なアルゴリズムは、スケーラブルで確率的なベースライン予測機能です。NPTS は、スパースまたは断続的な時系列を使用する場合に特に役立ちます。Forecast は、Standard NPTS、Seasonal NPTS、Climatological Forecaster、および Seasonal Climatological Forecaster の 4 つのアルゴリズムバリアントを提供します。

### [ARIMA](aws-forecast-recipe-arima.md)
<a name="arima"></a>

`arn:aws:forecast:::algorithm/ARIMA`

 自己回帰和分移動平均 (ARIMA) は、時系列予測に一般的に使用される統計アルゴリズムです。このアルゴリズムは、時系列が 100 未満の単純なデータセットに特に役立ちます。

### [ETS](aws-forecast-recipe-ets.md)
<a name="ets"></a>

`arn:aws:forecast:::algorithm/ETS`

 指数平滑法 (ETS) は、時系列予測に一般的に使用される統計アルゴリズムです。このアルゴリズムは、時系列が 100 未満の単純なデータセット、および季節性パターンのあるデータセットに特に役立ちます。ETS は、時系列データセット内のすべての観測値の加重平均を予測として計算し、時間の経過とともに重みを指数関数的に減少させます。

## Forecast アルゴリズムの比較
<a name="comparing-algos"></a>

 次の表を使用して、時系列データセットに最適なオプションを見つけます。


|  | ニューラルネットワーク | 柔軟なローカルアルゴリズム | ベースラインアルゴリズム |  | CNN-QR | DeepAR\$1 | Prophet | NPTS | ARIMA | ETS | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| 計算負荷の高いトレーニングプロセス | 高い | 高 | 中程度 | 低 | 低 | 低 | 
| 履歴の関連する時系列を受け入れる \$1 | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 
| フォワードルックの関連する時系列を受け入れる \$1 | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 
| 項目のメタデータ (製品の色、ブランドなど) を受け入れる | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 
| Weather Index のビルトインの特徴量化を受け入れる | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 
| スパースデータセットに適している | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 
| ハイパーパラメータ最適化 (HPO) を実行する | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 
| デフォルトのハイパーパラメータ値の上書きを許可する  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/icon-no.png)  | 

\$1 関連する時系列の詳細については、「[Related Time Series](related-time-series-datasets.md)」(関連する時系列) を参照してください。

# 自己回帰和分移動平均 (ARIMA) のアルゴリズム
<a name="aws-forecast-recipe-arima"></a>

自己回帰和分移動平均 ([ARIMA](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average)) は、時系列予測に一般的に使用される局所統計アルゴリズムです。ARIMA は、入力データセットの標準的時間構造 (時間のパターン化された編成) をキャプチャします。Amazon Forecast の ARIMA アルゴリズムは、Comprehensive R Archive Network (CRAN) の `Package 'forecast'` の [Arima 関数](https://cran.r-project.org/web/packages/forecast/forecast.pdf#Rfn.Arima.1)を呼び出します。

## ARIMA の仕組み
<a name="aws-forecast-recipe-arima-how-it-works"></a>

ARIMA アルゴリズムは、定常時系列にマッピングできるデータセットに特に役立ちます。定常時系列の統計プロパティ (自己相関など) は、時間に依存しません。定常時系列を持つデータセットには通常、信号とノイズの組み合わせが含まれます。信号は正弦波振動のパターンを示すか、または季節的な構成要素を含む可能性があります。ARIMA は、信号をノイズから分離するフィルターのように動作し、今後の信号を推定して予測を立てます。

## ARIMA のハイパーパラメータおよびチューニング
<a name="aws-forecast-recipe-arima-hyperparamters"></a>

ARIMA ハイパーパラメータとチューニングの詳細については、[CRAN](https://cran.r-project.org) の「[Package 'forecast'](https://cran.r-project.org/web/packages/forecast/forecast.pdf)」(パッケージ「予測」) の `Arima` 関数のドキュメントを参照してください。

Amazon Forecast は、次の表を使用して、[CreateDataset](API_CreateDataset.md) オペレーションで指定された `DataFrequency` パラメータを R [ts](https://www.rdocumentation.org/packages/stats/versions/3.6.1/topics/ts) 関数の `frequency` パラメータに変換します。


| DataFrequency (文字列) | R ts frequency (整数) | 
| --- | --- | 
| はい | 1 | 
| M | 12 | 
| W | 52 | 
| D | 7 | 
| H | 24 | 
| 30 分 | 2 | 
| 15 分 | 4 | 
| 10 分 | 6 | 
| 5 分 | 12 | 
| 1 min | 60 | 

24 未満の頻度または短い時系列の場合、ハイパーパラメータは [CRAN](https://cran.r-project.org) の `Package 'forecast'` の `auto.arima` 関数を使用して設定されます。24 以上の頻度または長い時系列の場合は、「[Forecasting with long seasonal periods](https://robjhyndman.com/hyndsight/longseasonality/)」で説明するように、K = 4 のフーリエ級数を使用します。

表にないサポートされているデータ頻度のデフォルト値は、`ts` 頻度 1 に設定されます。

# CNN-QR アルゴリズム
<a name="aws-forecast-algo-cnnqr"></a>

 Amazon Forecast CNN-QR、畳み込みニューラルネットワーク - 分位点回帰は、因果畳み込みニューラルネットワーク (CNN) を使用してスカラー (1 次元) 時系列を予測するための独自の機械学習アルゴリズムです。この教師あり学習アルゴリズムは、時系列の大規模なコレクションから 1 つのグローバルモデルをトレーニングし、分位数デコーダーを使用して確率的予測を行います。

**Topics**
+ [CNN-QR の開始方法](#aws-forecast-algo-cnnqr-getting-started)
+ [CNN-QR の仕組み](#aws-forecast-algo-cnnqr-how-it-works)
+ [CNN-QR での関連データの使用](#aws-forecast-algo-cnnqr-using-rts)
+ [CNN-QR ハイパーパラメータ](#aws-forecast-algo-cnnqr-hyperparameters)
+ [ヒントとベストプラクティス](#aws-forecast-algo-cnnqr-tips)

## CNN-QR の開始方法
<a name="aws-forecast-algo-cnnqr-getting-started"></a>

 CNN-QR を使用して予測子をトレーニングするには、次の 2 つの方法があります。

1. CNN-QR アルゴリズムを手動で選択します。

1. AutoML の選択 (CNN-QR は AutoML の一部です)。

 使用するアルゴリズムがわからない場合は、AutoML を選択することをお勧めします。これにより、Forecast は、データに対して最も正確なアルゴリズムである場合に CNN-QR を選択します。CNN-QR が最も正確なモデルとして選択されたかどうかを確認するには、[DescribePredictor](https://docs.aws.amazon.com/forecast/latest/dg/API_DescribePredictor.html) API を使用するか、コンソールで予測子名を選択します。

CNN-QR の主なユースケースは次のとおりです。
+  **大規模で複雑なデータセットを使用した予測** - CNN-QR は、大規模で複雑なデータセットを使用してトレーニングした場合に最適に機能します。ニューラルネットワークは多くのデータセットから学習できます。これは、関連する時系列と項目メタデータがある場合に役立ちます。
+  **履歴の関連する時系列を使用した予測** - CNN-QR では、関連する時系列に予測期間内のデータポイントを含める必要はありません。この追加された柔軟性により、商品の価格、イベント、ウェブメトリクス、製品カテゴリなど、関連する時系列および項目メタデータを幅広く含めることができます。

## CNN-QR の仕組み
<a name="aws-forecast-algo-cnnqr-how-it-works"></a>

CNN-QR は、確率的予測のためのシーケンス間 (Seq2Seq) モデルであり、エンコードシーケンスを条件として、予測がデコードシーケンスをどれだけ適切に再構築するかをテストします。

このアルゴリズムでは、エンコードシーケンスとデコードシーケンスでさまざまな特徴を使用できるため、エンコーダーで関連する時系列を使用し、デコーダーから除外することができます (その逆も可能です)。デフォルトでは、予測期間内のデータポイントに関連する時系列は、エンコーダーとデコーダーの両方に含まれます。予測期間にデータポイントがない関連する時系列は、エンコーダーにのみ含まれます。

CNN-QR は、学習可能な特徴抽出機能として使用できる階層的因果 CNN を使用して分位点回帰を実行します。

週末の急増などの時間依存パターンの学習を容易にするために、CNN-QR は時系列の詳細度に基づいて特徴の時系列を自動的に作成します。例えば、CNN-QR は、週に 1 回の頻度で 2 つの特徴の時系列 (月初からの日付と年初からの日付) を作成します。アルゴリズムは、このように派生した特徴の時系列を使用するだけでなく、トレーニングと推論の間にユーザーが提供するカスタムの特徴の時系列も使用します。次の例は、ターゲット時系列である `zi,t` と、派生した 2 つの時系列の特徴を示しています。`ui,1,t` はその日の時間を表し、`ui,2,t` はその曜日を表します。

![\[\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/cnnqr-time-frequencies.PNG)


CNN-QR は、データの頻度とトレーニングデータのサイズに基づいて、これらの特徴の時系列を自動的に組み込みます。次の表に、サポートされている基本的な頻度ごとに、派生させることのできる特徴を示します。


****  

| 時系列の頻度 | 派生する特徴 | 
| --- | --- | 
| 分 | 分、時、曜日、月初からの日付、年初からの日付 | 
| 時間 | 時、曜日、月初からの日付、年初からの日付 | 
| 日。 | 曜日、月初からの日付、年初からの日付 | 
| 週 | 月初からの週、年初からの週 | 
| 月 | 月 | 

トレーニング中、トレーニングデータセットの各時系列は、固定された事前定義済みの長さを持つ、隣接するコンテキストウィンドウと予測ウィンドウのペアで構成されます。これを次の図に示します。コンテキストウィンドウは緑色で表され、予測ウィンドウは青色で表されています。

特定のトレーニングセットでトレーニングされたモデルを使用すると、トレーニングセット内の時系列の予測と他の時系列の予測を生成できます。トレーニングデータセットは、関連する時系列と項目メタデータのリストに関連付けられている可能性のあるターゲット時系列で構成されています。

以下の図は、インデックス `i` が付されたトレーニングデータセットの要素に対してこれがどのように機能するかを示しています。トレーニングデータセットは、ターゲット時系列 `zi,t`、および 2 つの関連付けられた関連する時系列 `xi,1,t` と `xi,2,t` から構成されます。最初の関連する時系列である `xi,1,t` はフォワードルックの時系列であり、2 番目の時系列である `xi,2,t` は履歴時系列です。

![\[\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/cnnqr-short-long-rts.png)


CNN-QR は、ターゲット時系列である `zi,t` と、関連する時系列である `xi,1,t` および `xi,2,t` を学習して、予測ウィンドウで予測を生成します。これは、オレンジ色の線で表されます。

## CNN-QR での関連データの使用
<a name="aws-forecast-algo-cnnqr-using-rts"></a>

 CNNQR では、過去と将来の時系列データセットの両方がサポートされます。将来を見据えた関連時系列データセットを提供する場合、欠損値は[将来のフィル手法](howitworks-missing-values.md)を使用して埋められます。履歴およびフォワードルックの関連する時系列の詳細については、「[Using Related Time Series Datasets](related-time-series-datasets.md)」(関連する時系列データセットの使用) を参照してください。

CNN-QR で項目メタデータデータセットを使用することもできます。これらは、ターゲット時系列の項目に関する静的情報を含むデータセットです。項目メタデータは、履歴データがほとんどないか、まったくないコールドスタート予想シナリオで特に役立ちます。項目メタデータの詳細については、「[Item Metadata](item-metadata-datasets.md)」(項目メタデータ) を参照してください。

## CNN-QR ハイパーパラメータ
<a name="aws-forecast-algo-cnnqr-hyperparameters"></a>

 Amazon Forecast は、選択したハイパーパラメータで CNN-QR モデルを最適化します。CNN-QR を手動で選択する場合、これらのハイパーパラメータのトレーニングパラメータを渡すオプションがあります。次の表に、CNN-QR アルゴリズムの調整可能なハイパーパラメータを示します。


| パラメータ名 | 値 | 説明 | 
| --- | --- | --- | 
| context\$1length |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-algo-cnnqr.html)  |  予測を生成する前にモデルが読み込む時間ポイントの数。通常、CNN-QR はそれ以上の履歴データを調べるためにラグを使用しないため、CNN-QR の `context_length` の値は DeepAR\$1 よりも大きくなります。 `context_length` の値が事前定義された範囲外の場合、CNN-QR は、デフォルトの `context_length` を適切な値に自動的に設定します。  | 
| use\$1related\$1data |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-algo-cnnqr.html)  |  モデルに含める関連する時系列データの種類を決定します。 次の 4 つのオプションのいずれかを選択します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-algo-cnnqr.html) `HISTORICAL` はすべての履歴の関連する時系列を含み、`FORWARD_LOOKING` はすべてのフォワードルックの関連する時系列を含みます。`HISTORICAL` または `FORWARD_LOOKING` の関連する時系列のサブセットを選択することはできません。  | 
| use\$1item\$1metadata |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-algo-cnnqr.html)  |  モデルに項目のメタデータが含まれるかどうかを決定します。 2 つのオプションのいずれかを選択します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-algo-cnnqr.html) `use_item_metadata` は、提供されたすべての項目メタデータを含むか、何も含まないかのいずれかです。項目メタデータのサブセットを選択することはできません。  | 
| epochs |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-algo-cnnqr.html)  |  トレーニングデータの完全なパスの最大数。データセットが小さいほど、より多くのエポックが必要になります。 `ForecastHorizon` と `context_length` の値が大きい場合は、エポックを減らしてトレーニング時間を改善することを検討してください。  | 

### ハイパーパラメータの最適化 (HPO)
<a name="aws-forecast-algo-cnnqr-hpo"></a>

ハイパーパラメータの最適化 (HPO) は、特定の学習目標に最適なハイパーパラメータ値を選択するタスクです。Forecast を使用すると、このプロセスを 2 つの方法で自動化できます。

1. AutoML を選択すると、CNN-QR に対して HPO が自動的に実行されます。

1. CNN-QR を手動で選択して `PerformHPO = TRUE` を設定します。

関連する時系列と項目のメタデータを追加しても、CNN-QR モデルの精度が常に向上するとは限りません。AutoML を実行するか、HPO を有効にすると、CNN-QR は、提供された関連する時系列と項目メタデータがある場合とない場合のモデルの精度をテストし、最も精度の高いモデルを選択します。

Amazon Forecast は、HPO 中に次の 3 つのハイパーパラメータを自動的に最適化し、最終的にトレーニングされた値を提供します。
+ **context\$1length** - ネットワークが参照できる過去の長さを決定します。HPO プロセスは、トレーニング時間を考慮しながら、モデルの精度を最大化する `context_length` の値を自動的に設定します。
+ **use\$1related\$1data** - モデルに含める関連する時系列データの形式を決定します。HPO プロセスは、関連する時系列データがモデルを改善するかどうかを自動的にチェックし、最適な設定を選択します。
+ **use\$1item\$1metadata** - モデルに項目メタデータを含めるかどうかを決定します。HPO プロセスは、項目メタデータがモデルを改善するかどうかを自動的にチェックし、最適な設定を選択します。

**注記**  
`Holiday` の補足的な特徴が選択されている場合に `use_related_data` が `NONE` もしくは `HISTORICAL` に設定されているときは、これは祝祭日データを含めてもモデルの精度が向上しないことを意味します。

`PerformHPO = TRUE` を手動選択中に設定した場合は、`context_length` ハイパーパラメータの HPO 構成を設定できます。ただし、AutoML を選択した場合、HPO 設定のどの側面も変更できません。HPO 設定の詳細については、[IntergerParameterRange](https://docs.aws.amazon.com/forecast/latest/dg/API_IntegerParameterRange.html) API を参照してください。

## ヒントとベストプラクティス
<a name="aws-forecast-algo-cnnqr-tips"></a>

 **ForecastHorizon に大きな値を使用しないようにする** - `ForecastHorizon` に 100 を超える値を使用すると、トレーニング時間が長くなり、モデルの精度が低下する可能性があります。未来の予測をさらに生成するには、より高い頻度で情報を集約することを検討してください。例えば、`1min` ではなく `5min` を使用します。

 **CNN はより長いコンテキスト長を可能にする** - CNN-QR を使用することで、`context_length` を DeepAR\$1 よりもわずかに長く設定できます。これは、CNN が一般に RNN よりも効率的であることによります。

 **関連データの特徴エンジニアリング** - モデルをトレーニングするときに、関連する時系列と項目メタデータのさまざまな組み合わせを試して、追加情報によって精度が向上するかどうかを評価します。関連する時系列と項目のメタデータのさまざまな組み合わせと変換により、さまざまな結果が得られます。

 **CNN-QR は平均分位数で予測しない** – [CreateForecast](https://docs.aws.amazon.com/forecast/latest/dg/API_CreateForecast.html) API で `ForecastTypes` を `mean` に設定すると、代わりに分位数の中央値 (`0.5` または `P50`) で予測が生成されます。

# DeepAR\$1 アルゴリズム
<a name="aws-forecast-recipe-deeparplus"></a>

Amazon Forecast DeepAR は、再帰型ニューラルネットワーク (RNN) を使用してスカラー (1 次元) 時系列を予測するための、教師あり学習アルゴリズムです。自己回帰和分移動平均 (ARIMA) や指数平滑法 (ETS) などの古典的な予測方法は、1 つのモデルを個々の時系列に適合させ、そのモデルを使用して時系列を未来に当てはめます。ただし多くのアプリケーションでは、一連の横断的な単位にわたって同様の時系列が多数あります。これらの時系列グループは、さまざまな製品、サーバーの負荷、およびウェブページのリクエストを要求します。この場合、これらすべての時系列で、連携して単一のモデルをトレーニングすることが効果的です。DeepAR\$1 はこのアプローチを使用します。データセットに何百もの特徴の時系列データが含まれている場合、DeepAR\$1 アルゴリズムは標準の ARIMA や ETS メソッドよりも優れています。トレーニングしたモデルを使用して、トレーニングしたモデルと似た新しい時系列の予測を生成することもできます。

**Python ノートブック**  
DeepAR\$1 アルゴリズムの使用に関するステップバイステップガイドについては、「[Getting Started with DeepAR\$1](https://github.com/aws-samples/amazon-forecast-samples/blob/master/notebooks/advanced/Getting_started_with_DeepAR%2B/Getting_started_with_DeepAR%2B.ipynb)」(DeepAR\$1 の開始方法) を参照してください。

**Topics**
+ [DeepAR\$1 の仕組み](#aws-forecast-recipe-deeparplus-how-it-works)
+ [DeepAR\$1 ハイパーパラメータ](#aws-forecast-recipe-deeparplus-hyperparameters)
+ [DeepAR\$1 モデルを調整する](#aws-forecast-recipe-deeparplus-tune-model)

## DeepAR\$1 の仕組み
<a name="aws-forecast-recipe-deeparplus-how-it-works"></a>

トレーニング中、DeepAR\$1 はトレーニングデータセットとオプションのテストデータセットを使用します。テストデータセットは、トレーニングされたモデルを評価するために使用されます。一般的に、トレーニングデータセットとテストデータセットに同じ一連の時系列を含める必要はありません。特定のトレーニングセットでトレーニングされたモデルを使用すると、トレーニングセット内の時系列の今後の予測と他の時系列の予測を生成できます。トレーニングデータセットとテストデータセットはどちらも (可能な場合は複数の) ターゲット時系列で構成されています。オプションで、特徴時系列のベクトルとカテゴリ別特徴のベクトルに関連付けることができます (詳細については、*SageMaker AI デベロッパーガイド*」の[DeepAR 入出力インターフェイス](https://docs.aws.amazon.com/sagemaker/latest/dg/deepar.html#deepar-inputoutput)」を参照してください）。次の例は、インデックス `i` が付されたトレーニングデータセットの要素に対してこれがどのように機能するかを示しています。トレーニングデータセットは、ターゲット時系列 `zi,t`、および 2 つの関連する特徴の時系列 `xi,1,t` と `xi,2,t` から構成されます。

![\[\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/forecast-recipe-deeparplus-ts-full-159.base.png)


ターゲット時系列には欠落した値が含まれている可能性があります (グラフでは時系列の切れ目で示されています)。DeepAR\$1 は、今後認識される特徴の時系列のみをサポートします。これにより、事実に反した「what-if」シナリオを実行できます。たとえば、「製品の価格を何らかの方法で変更した場合はどうなりますか?」などです。

各ターゲット時系列は、複数のカテゴリ別特徴に関連付けることもできます。これらを使用して、時系列が特定のグループに属していることをエンコードできます。カテゴリ別特徴を使用すると、モデルはそれらのグループ化の典型的な動作を学習することができ、それによって精度が向上します。モデルはこれを実装するために、グループ内のすべての時系列の共通プロパティをキャプチャする各グループの埋め込みベクトルを学習します。

週末の急増などの時間依存パターンの学習を容易にするために、DeepAR\$1 は時系列の詳細度に基づいて特徴の時系列を自動的に作成します。たとえば、DeepAR\$1 は、週に 1 回の頻度で 2 つの特徴の時系列 (月初からの日付と年初からの日付) を作成します。DeepAR\$1 は、このように派生した特徴の時系列を使用するだけでなく、トレーニングと推論の間にユーザーが提供するカスタムの特徴の時系列も使用します。次の例は、派生した 2 つの時系列の特徴を示しています。`ui,1,t` はその日の時間を表し、`ui,2,t` はその曜日を表します。

![\[\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/forecast-recipe-deeparplus-ts-full-159.derived.png)


DeepAR\$1 は、データの頻度とトレーニングデータのサイズに基づいて、これらの特徴の時系列を自動的に組み込みます。次の表に、サポートされている基本的な頻度ごとに、派生させることのできる特徴を示します。


****  

| 時系列の頻度 | 派生する特徴 | 
| --- | --- | 
| 分 | 分、時、曜日、月初からの日付、年初からの日付 | 
| 時間 | 時、曜日、月初からの日付、年初からの日付 | 
| 日。 | 曜日、月初からの日付、年初からの日付 | 
| 週 | 月初からの週、年初からの週 | 
| 月 | 月 | 

DeepAR\$1 モデルは、トレーニングデータセットの各時系列からいくつかのトレーニング例をランダムにサンプリングすることによってトレーニングされます。各トレーニング例は、事前定義された固定長を持つ一対の隣接コンテキストと予測ウィンドウで構成されています。`context_length` ハイパーパラメータは、どの程度の過去まで遡ってネットワークを調べられるのかを制御し、`ForecastHorizon` パラメータは、どの程度の未来まで予測を生成できるかを制御します。トレーニング中、Amazon Forecast は、指定された予測長より時系列が短いトレーニングデータセット内の要素を無視します。次の例は、要素 `i` から抽出された、コンテキストの長さ (緑でハイライト表示) が 12 時間、予測の長さ (青でハイライト表示) が 6 時間の 5 つのサンプルを示しています。簡潔にするために、特徴の時系列 `xi,1,t` と `ui,2,t` は除外しました。

![\[\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/forecast-recipe-deeparplus-ts-full-159.sampled.png)


季節的パターンをキャプチャするために、DeepAR\$1 はターゲット時系列から遅延した (過去の期間の) 値も自動的にフィードします。1 時間に 1 回の頻度で各時間インデックス `t = T` のサンプルを取得したこの例では、モデルは `zi,t` 値を公開します。これらは過去約 1、2、および 3 日 (ピンクでハイライト表示) に発生したものです。

![\[\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/forecast-recipe-deeparplus-ts-full-159.lags.png)


トレーニングされたモデルは、推論のために、トレーニング中に使用されたかどうかにかかわらず、ターゲット時系列を入力として受け取り、それ以降の `ForecastHorizon` 値の確率分布を予測します。DeepAR\$1 はデータセット全体についてトレーニングされるため、予測では同様の時系列からの学習パターンが考慮されます。

DeepAR\$1 の背後にある数学の詳細については、コーネル大学ライブラリウェブサイトの [DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks (DeepAR: 自己回帰反復ネットワークによる確率予測)](https://arxiv.org/abs/1704.04110) を参照してください。

## DeepAR\$1 ハイパーパラメータ
<a name="aws-forecast-recipe-deeparplus-hyperparameters"></a>

次の表は、DeepAR\$1 アルゴリズムで使用できるハイパーパラメータのリストです。太字のパラメータは、ハイパーパラメータ最適化 (HPO) に関与します。


| Parameter Name | 説明 | 
| --- | --- | 
| context\$1length |  予測を生成する前にモデルが読み込む時間ポイントの数。このパラメータの値は、`ForecastHorizon` とほぼ同じである必要があります。モデルはターゲットからの遅延入力も受信するため、`context_length` は一般的な季節性よりもはるかに小さくなります。たとえば、毎日の時系列が年次的な季節性を持つ場合があります。このモデルには 1 年間の遅延が自動的に含まれるため、コンテキストの長さは 1 年よりも短くなります。モデルが選択する遅延値は、時系列の頻度によって異なります。たとえば、毎日の頻度の遅延値は、前の週、2 週間、3 週間、4 週間、および 1 年です。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| epochs |  トレーニングデータへのパスの最大数。最適な値は、データサイズと学習レートによって異なります。データセットが小さく、学習率が低くなると、いずれもエポック数が多くなり、良好な結果が得られます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| learning\$1rate |  トレーニングで使用する学習レート。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| learning\$1rate\$1decay |  学習率が低下するレート。学習レートは多くても `max_learning_rate_decays` 回減少し、その後はトレーニングが停止します。このパラメータが使用されるのは、`max_learning_rate_decays` が 0 より大きい場合のみです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| likelihood |  モデルは確率予測を生成し、分散の変位値を提供してサンプルを返すことができます。データによっては、不確実性予測に使用される適切な尤度 (ノイズモデル) を選択します。 有効値 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| max\$1learning\$1rate\$1decays |  学習レートの減少が起きた場合のその最大回数。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html) | 
| num\$1averaged\$1models |  DeepAR\$1 では、トレーニングの軌跡に複数のモデルが含まれる可能性があります。各モデルの予測の長所と短所は異なる場合があります。DeepAR\$1 は、すべてのモデルの長所を活用するために、モデルの動作を平均化できます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| num\$1cells |  RNN の非表示のレイヤーごとに使用するセルの数。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 
| num\$1layers |  RNN の非表示レイヤーの数。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-deeparplus.html)  | 

## DeepAR\$1 モデルを調整する
<a name="aws-forecast-recipe-deeparplus-tune-model"></a>

Amazon Forecast DeepAR\$1 モデルを調整するには、以下の推奨事項に従って、トレーニングプロセスとハードウェア構成を最適化してください。

### プロセス最適化のためのベストプラクティス
<a name="aws-forecast-recipe-deeparplus-best-practices"></a>

 最良の結果を得るためには、以下の推奨事項に従ってください。
+ トレーニングとテストのデータセットを分割する場合を除き、トレーニングとテストのため、および推論のためにモデルを呼び出す際には、常に時系列全体を提供します。`context_length` の設定方法にかかわらず、時系列を分割したり、その一部だけを指定したりしないでください。モデルは、遅延値の特徴には、`context_length` より後ろのデータポイントを使用します。
+ モデルを調整するために、データセットをトレーニングデータセットとテストデータセットに分割することができます。典型的な評価シナリオでは、トレーニングで使用したのと同じ時系列でモデルをテストする必要がありますが、トレーニング中に表示される最後の時間ポイントの直後に発生する `ForecastHorizon` 時間ポイントでモデルをテストします。これらの基準を満たすトレーニングデータセットとテストデータセットを作成するには、データセット全体 (すべての時系列) をテストデータセットとして使用し、トレーニング用の各時系列から最後の `ForecastHorizon` ポイントを削除します。このようにトレーニング中には、モデルはテスト時に評価される時間ポイントのターゲット値を確認しません。テストフェーズでは、テストデータセット内の各時系列の最後の `ForecastHorizon` ポイントが保留され、予測が生成されます。その後、予測が最後の `ForecastHorizon` ポイントの実際の値と比較されます。より複雑な評価を作成するには、テストデータセット内で時系列を複数回繰り返しますが、それぞれ異なる終了ポイントで切り捨てます。これにより、さまざまな時間ポイントからの複数の予測で平均化された精度メトリクスが生成されます。
+ `ForecastHorizon` に非常に大きい値 (> 400) を使用することは避けてください。このような値を設定すると、モデルの速度が遅くなり、精度が低下します。未来の予測をさらに生成するには、より高い頻度で情報を集約することを検討してください。例えば、`1min` ではなく `5min` を使用します。
+ 遅延のために、モデルは `context_length` より前を確認することができます。そのため、このパラメータを大きい値に設定する必要はありません。このパラメータの開始点として推奨されるのは、`ForecastHorizon` と同じ値です。
+ 可能な限り多くの時系列で DeepAR\$1 モデルをトレーニングします。単一の時系列でトレーニングされた DeepAR\$1 モデルも問題なく機能する可能性はありますが、ARIMA や ETS などの標準的な予測方法を使用すると、正確性が増し、そのユースケースへの適合性が高まるように調整される可能性があります。データセットに何百もの特徴の時系列データが含まれている場合、DeepAR\$1 は標準の方法より優れた性能を発揮するようになります。DeepAR\$1 では現在、すべてのトレーニング時系列にわたって利用可能な観測の総数が 300 以上であることが要求されます。

# 指数平滑法 (ETS) のアルゴリズム
<a name="aws-forecast-recipe-ets"></a>

指数平滑法 [(ETS)](https://en.wikipedia.org/wiki/Exponential_smoothing) は、時系列予測に一般的に使用される局所統計アルゴリズムです。Amazon Forecast の ETS アルゴリズムは、Comprehensive R Archive Network (CRAN) の `Package 'forecast'` の [ets 関数](https://cran.r-project.org/web/packages/forecast/forecast.pdf#Rfn.ets.1)を呼び出します。

## ETS の仕組み
<a name="aws-forecast-recipe-ets-how-it-works"></a>

ETS アルゴリズムは、季節性およびデータに関する他の事前の仮定を含むデータセットに特に役立ちます。ETS では、予測として、入力時系列データセットにおけるすべての観測値の加重平均を計算します。単純移動平均法では、重みは一定はなく、時間の経過とともに指数関数的に減少します。重みは、定数パラメータ (平滑化パラメータとも呼ばれる) に依存します。

## ETS のハイパーパラメータおよびチューニング
<a name="aws-forecast-recipe-ets-hyperparamters"></a>

ETS ハイパーパラメータとチューニングの詳細については、[CRAN](https://cran.r-project.org) の「[Package 'forecast'](https://cran.r-project.org/web/packages/forecast/forecast.pdf)」(パッケージ「予測」) の `ets` 関数のドキュメントを参照してください。

Amazon Forecast は、次の表を使用して、[CreateDataset](API_CreateDataset.md) オペレーションで指定された `DataFrequency` パラメータを R [ts](https://www.rdocumentation.org/packages/stats/versions/3.6.1/topics/ts) 関数の `frequency` パラメータに変換します。


| DataFrequency (文字列) | R ts frequency (整数) | 
| --- | --- | 
| Y | 1 | 
| M | 12 | 
| W | 52 | 
| D | 7 | 
| H | 24 | 
| 30 分 | 2 | 
| 15 分 | 4 | 
| 10 分 | 6 | 
| 5 分 | 12 | 
| 1 min | 60 | 

表にないサポートされているデータ頻度のデフォルト値は、`ts` 頻度 1 に設定されます。

# ノンパラメトリック時系列 (NPTS) のアルゴリズム
<a name="aws-forecast-recipe-npts"></a>

Amazon Forecast ノンパラメトリック時系列 (NPTS) のアルゴリズムは、スケーラブルで確率的なベースライン予測機能です。過去の観測からサンプリングすることにより、特定の時系列の未来の価値分布を予測します。予測は観測値によって制限されます。時系列が断続的 (またはスパース、多くの 0 を含む) かつバースト的であり場合、NPTS は特に便利です。たとえば、時系列に多数の低カウントがある個々のアイテムの需要の予測などです。Amazon Forecast は、過去の観測のどれをサンプリングするかが異なり、かつどのようにサンプリングされるかが異なる、NPTS のバリアントを提供します。NPTS バリアントを使用するには、ハイパーパラメータ設定を選択します。

## NPTS の仕組み
<a name="aws-forecast-recipe-npts-how-it-works"></a>

指数平滑法 (ETS) や自己回帰和分移動平均 (ARIMA) などの古典的な予測方法と同様に、NPTS は各時系列の予測を個別に生成します。データセットの時系列は長さが異なっていて構いません。観察が利用可能である時間ポイントはトレーニング範囲と呼ばれ、予測が望まれる時間ポイントは予測範囲と呼ばれます。

Amazon Forecast NPTS の予測機能には、NPTS、季節性 NPTS、気候学的予測機能、および季節性気候学的予測機能というバリエーションがあります。

**Topics**
+ [NPTS](#aws-forecast-recipe-npts-variants-npts)
+ [季節性 NPTS](#aws-forecast-recipe-npts-variants-seasonal)
+ [気候学的予測機能](#aws-forecast-recipe-npts-variants-climatological)
+ [季節性気候学的予測機能](#aws-forecast-recipe-npts-variants-seasonal-climatological)
+ [季節性の特徴](#aws-forecast-recipe-npts-seasonal-features)
+ [ベストプラクティス](#aws-forecast-recipe-npts-recommended-practices)

### NPTS
<a name="aws-forecast-recipe-npts-variants-npts"></a>

このバリアントで、予測は、時系列のトレーニング範囲内のすべての観測値からサンプリングすることによって生成されます。ただし、すべての観測値から一様にサンプリングするのではなく、このバリアントでは、予測が必要な現在の時間ステップからどれほど離れているかに応じて、過去の各観測値に重みを割り当てます。特に、過去の観測値がどれほど離れているかに応じて指数関数的に減衰する重みを使用します。このように、最近の過去からの観測値は、遠い過去からの観測値よりもはるかに高い確率でサンプリングされます。これは、近い過去が遠い過去より未来のためにより指標的であるということを前提としています。重みの減衰量を制御するには、`exp_kernel_weights` ハイパーパラメータを使用します。

Amazon Forecast でこの NPTS バリアントを使用するには、`use_seasonal_model` ハイパーパラメータを `False` に設定し、他のすべてのデフォルト設定を受け入れます。

### 季節性 NPTS
<a name="aws-forecast-recipe-npts-variants-seasonal"></a>

季節性 NPTS のバリアントは、NPTS と似ていますが、すべての観測からサンプリングするのではなく、過去の*季節*の観測のみを使用する点が異なります。デフォルトでは、季節は時系列の詳細度によって決まります。たとえば、1 時間ごとの時系列で時間 *t* の予測を生成するには、このバリアントは前日の時間 *t* に対応する観測値からサンプリングします。NPTS と同様に、前日の *t* 時の観測値は、それより前の日の *t* 時の観測値よりも重要度が高くなります。時系列の詳細度に基づいて季節性を判断する方法について詳しくは、[季節性の特徴](#aws-forecast-recipe-npts-seasonal-features)を参照してください。

### 気候学的予測機能
<a name="aws-forecast-recipe-npts-variants-climatological"></a>

気候学的予測機能のバリアントは、過去の観測すべてを一様な確率でサンプリングします。

気候学的予測機能を使用するには、`kernel_type` ハイパーパラメータを `uniform` に、`use_seasonal_model` ハイパーパラメータを `False` に設定します。他のすべてのハイパーパラメータのデフォルト設定を受け入れます。

### 季節性気候学的予測機能
<a name="aws-forecast-recipe-npts-variants-seasonal-climatological"></a>

季節性 NPTS と同様に、季節性気候学的予測機能は、過去の季節からの観測値をサンプリングしますが、それらを一様な確率でサンプリングします。

季節性気候学的予測機能を使用するには、`kernel_type` ハイパーパラメータを `uniform` に設定します。他のすべてのハイパーパラメータについては、他のすべてのデフォルト設定を受け入れます。

### 季節性の特徴
<a name="aws-forecast-recipe-npts-seasonal-features"></a>

季節性 NPTS と季節性気候学的予測機能の季節に対応するものを判断するには、次の表にリストされている特徴を使用します。この表には、詳細度に基づいて、サポートされている基本的な時間頻度で派生する特徴をリストします。Amazon Forecast にはこれらの特徴の時系列が含まれているのため、それらを提供する必要はありません。


****  

| 時系列の頻度 | 季節性を判断する特徴 | 
| --- | --- | 
| 分 | 時間あたりの分 | 
| 時間 | 日あたりの時間 | 
| 日 | 曜日 | 
| 週 | 月あたりの日 | 
| 月 | 月 | 

### ベストプラクティス
<a name="aws-forecast-recipe-npts-recommended-practices"></a>

Amazon Forecast NPTS のアルゴリズムを使用する際には、データを準備して最適な結果を得るために、次のベストプラクティスを考慮してください。
+ NPTS は各時系列の予測を個別に生成するため、予測のためにモデルを呼び出すときには時系列全体を指定します。また、`context_length` ハイパーパラメータのデフォルト値を受け入れます。これにより、アルゴリズムで時系列全体が使用されます。
+  トレーニングデータが長すぎるために `context_length` を変更する場合は、十分な大きさであり、過去の複数の季節をカバーできることを確認してください。たとえば、毎日の時系列の場合、この値は 365 日以上でなければなりません (ただし、その量のデータがある場合)。

## NPTS のハイパーパラメータ
<a name="aws-forecast-recipe-npts-hyperparamters"></a>

次の表は、NPTS アルゴリズムで使用できるハイパーパラメータのリストです。


| Parameter Name | 説明 | 
| --- | --- | 
| context\$1length | モデルが予測を生成するために使用する過去の時間ポイントの数。デフォルトでは、トレーニング範囲内のすべての時間ポイントポイントが使用されます。通常、このハイパーパラメータの値は大きくなければならず、過去の複数の季節をカバーする必要があります。たとえば、毎日の時系列の場合、この値は 365 日以上である必要があります。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-npts.html)  | 
| kernel\$1type | 過去の観測値のサンプリングに使用する重みを定義するためのカーネル。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-npts.html)  | 
| exp\$1kernel\$1weights |  `kernel_type` が `exponential` の場合にのみ有効です。 カーネルのスケーリングパラメータ。遠い過去の観測に割り当てられた重みをより速く (指数関数的に) 減衰させるためには、大きい値を使用してください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-npts.html)  | 
| use\$1seasonal\$1model | 季節性のバリアントを使用するかどうか。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-npts.html)  | 
| use\$1default\$1time\$1features |  *季節性 NPTS* および*季節性気候学的予測機能*のバリアントにのみ有効です。 季節性を判断するために時系列の詳細度に基づいて季節性の特徴を使用するかどうか。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/aws-forecast-recipe-npts.html)  | 

# Prophet アルゴリズム
<a name="aws-forecast-recipe-prophet"></a>

[Prophet](https://facebook.github.io/prophet/) は、人気のある局所的なベイズ構造時系列モデルです。Amazon Forecast の Prophet のアルゴリズムでは、Prophet の Python 実装の [Prophet クラス](https://facebook.github.io/prophet/docs/quick_start.html#python-ap)を使用します。

## Prophet の仕組み
<a name="aws-forecast-recipe-prophet-how-it-works"></a>

Prophet は、以下のようなデータセットに特に役立ちます。
+ 長期 (月次、年次) にわたる詳細な履歴観測 (毎時、日次、週次) を含む
+ 複数の強い季節性を持つ
+ 以前に認識されていた、重要だが不規則なイベントを含む
+ データポイントがないか、大きな外れ値がある
+ 限界に近づいている非線形成長トレンドがある

Prophet は、区分線形またはロジスティック成長曲線の傾向を持つ加法回帰モデルです。このモデルには、フーリエ級数を使用してモデル化された季節性 (年) コンポーネントと、ダミー変数を使用してモデル化された季節性 (週) コンポーネントがあります。

詳細については、「[Prophet: スケールに応じた予測](https://research.facebook.com/blog/2017/2/prophet-forecasting-at-scale/)」を参照してください。

## Prophet のハイパーパラメータと関連する時系列
<a name="aws-forecast-recipe-prophet-hyperparamters"></a>

Amazon Forecast は、デフォルトの Prophet の[ハイパーパラメータ](https://facebook.github.io/prophet/docs/quick_start.html#python-ap)を使用します。Prophet は、関連する時系列もサポートしています。この機能は、関連する時系列 CSV ファイルで Amazon Forecast に提供されています。