

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

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

# Forecast Explainability
<a name="forecast-explainability"></a>

Forecast Explainability は、データセット内の属性が特定の時系列 (項目とディメンションの組み合わせ) および時間ポイントの予測にどのように影響するかをよりよく理解するのに役立ちます。Forecast は、Impact スコアと呼ばれるメトリクスを使用して、各属性の相対的な影響を定量化し、それらが予測値を増加させるか減少させるかを決定します。

例えば、ターゲットが `sales` であり、`price` および `color` といった関連する 2 つの属性がある予測シナリオについて考えてみます。Forecast では、商品の色が、特定の商品の売上には大きな影響を与えるが、他の商品に対する影響はごくわずかであると判断する可能性があります。また、夏のプロモーションは売上に大きな影響を与えるが、冬のプロモーションはほとんど効果がないと判断する可能性もあります。

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

データセット内のすべての時系列と時間ポイントについての集約された Impact スコアを表示するには、Forecast Explainability の代わりに Predictor Explainability を使用します。「[Predictor Explainability](predictor-explainability.md)」(予測子の Explainability) を参照してください。

**Python ノートブック**  
Forecast Explainability に関するステップバイステップガイドについては、「[Item-Level Explainability](https://github.com/aws-samples/amazon-forecast-samples/blob/main/notebooks/advanced/Item_Level_Explainability/Item_Level_Explanability.ipynb)」(項目レベルの Explainability) を参照してください。

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

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

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

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

![](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/quicksightwithfilters.png)


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

 すべてまたは一部の影響スコアがゼロになる可能性があります。これは、機能が予想値に影響を与えない場合、AutoPredictor が非 ML アルゴリズムのみを使用していた場合、または関連する時系列や項目のメタデータを指定しなかった場合に発生することがあります。

[Forecast Explainability] については、Impact スコアには、Normalized impact スコアと Raw impact スコアの 2 つの形式があります。生の影響スコアはシャープレイ値に基づいており、スケーリングまたは制限されていません。正規化された影響スコアは、生のスコアを -1 から 1 の間の値にスケールします。

生の影響スコアは、さまざまな Explainability リソース間でスコアを組み合わせて比較するのに役立ちます。例えば、予測子に 50 を超える時系列または 500 を超える時間ポイントが含まれている場合、複数の Forecast Explainability リソースを作成して、より多くの時系列または時間ポイントを合わせた数をカバーし、属性の生の影響スコアを直接比較できます。ただし、さまざまな予測からの Forecast Explainability リソースの生の影響スコアを直接比較することはできません。

コンソールで Impact スコアを表示すると、Normalized impact スコアのみが表示されます。Explainability をエクスポートすると、生のスコアと正規化されたスコアの両方が提供されます。

## Forecast Explainability の作成
<a name="creating-forecast-explainability"></a>

Forecast Explainability を使用すると、属性が特定の時間ポイントでの特定の時系列の予測値にどのように影響するかを詳しく調べることができます。時系列と時間ポイントを指定した後、Amazon Forecast は、それらの特定の時系列と時間ポイントのみの Impact スコアを計算します。

ソフトウェア開発キット (SDK) または Amazon Forecast コンソールを使用して、予測子の Forecast Explainability を有効にできます。SDK を使用する場合は、[CreateExplainability](API_CreateExplainability.md) オペレーションを使用します。

**Topics**
+ [時系列の指定](#forecast-explainability-time-series)
+ [時間ポイントの指定](#forecast-explainability-time-points)

### 時系列の指定
<a name="forecast-explainability-time-series"></a>

**注記**  
時系列は、項目 (item\_id) とデータセット内のすべてのディメンションの組み合わせです

Forecast Explainability に時系列 (項目とディメンションの組み合わせ) を指定すると、Amazon Forecast は、それらの特定の時系列のみについて、属性の Impact スコアを計算します。

時系列のリストを指定するには、item\_id とディメンション値によって時系列を識別する CSV ファイルを S3 バケットにアップロードします。最大 50 個の時系列を指定できます。また、スキーマで時系列の属性と属性タイプを定義する必要があります。

例えば、小売業者は、特定の店舗の場所 (`store_location`) での特定の商品 (`item_id`) の売上について、プロモーションがどのように影響するかを知りたい場合があります。このユースケースでは、item\_id と store\_location の組み合わせである時系列を指定します。

次の CSV ファイルは、次の 5 つの時系列を選択します。

1. Item\_id: 001、store\_location: シアトル

1. Item\_id: 001、store\_location: ニューヨーク

1. Item\_id: 002、store\_location: シアトル

1. Item\_id: 002、store\_location: ニューヨーク

1. Item\_id: 003、store\_location: デンバー

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

スキーマは、最初の列を `item_id` として定義し、2 番目の列を `store_location` として定義します。

Forecast コンソールまたは Forecast ソフトウェア開発キット (SDK) を使用して、時系列を指定できます。

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

**Forecast Explainability の時系列を指定するには**

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

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

1. ナビゲーションペインで、[**Insights**] を選択します。

1. **[Create Explainability]** (Explainability を作成) を選択します。

1. **[Explainability name]** (Explainability 名) のフィールドに、Forecast Explainability の一意の名前を入力します。

1. **[Select forecast]** (予測を選択) のフィールドで、予測を選択します。

1. **[S3 のロケーション]** フィールドに、時系列を含むファイルの場所を入力します。

1. **[Data schema]** (データスキーマ) のフィールドで、**[attribute name]** (属性名) を、時系列で使用される項目 ID とディメンションの **[attribute type]** (属性タイプ) に設定します。

1. **[Create Explainability]** (Explainability を作成) を選択します。

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

**Forecast Explainability の時系列を指定するには**

[CreateExplainability](API_CreateExplainability.md) オペレーションを使用して、ExplainabilityName に一意の名前を指定し、ResourceArn の予測 ARN を指定します。

次のデータ型を設定します。
+ `ExplainabilityConfig` - TimeSeriesGranularity の値を「SPECIFIC」に設定し、TimePointGranularity の値を「ALL」に設定します。(時間ポイントを指定するには、TimePointGranularity を [SPECIFIC] に設定します。「[Specifying time points](#forecast-explainability-time-points)」(時間ポイントの指定) を参照してください)
+ `S3Config` - 「Path」の値を時系列ファイルの S3 のロケーションに設定し、「RoleArn」の値を S3 バケットにアクセスできるロールに設定します。
+ `Schema` - item\_id の「AttributeName」と「AttributeType」、および時系列のディメンションを定義します。

次の例は、「item\_id」と「store\_location」のディメンションの組み合わせを使用した時系列のスキーマを示しています。

```
{
    "ExplainabilityName" : [unique_name],
    "ResourceArn" : [forecast_arn],
    "ExplainabilityConfig" {
        "TimeSeriesGranularity": "SPECIFIC",
        "TimePointGranularity": "ALL"
    },
    "DataSource": {
         "S3Config": {   
            "Path": [S3_path_to_file],          
            "RoleArn":[role-to-access-s3-bucket]
         }
      },
    "Schema": {
         "Attributes": [ 
            { 
               "AttributeName": "item_id",
               "AttributeType": "string"
            },
                        { 
               "AttributeName": "store_location",
               "AttributeType": "string"
            }
         ]
      },
}
```

------

### 時間ポイントの指定
<a name="forecast-explainability-time-points"></a>

**注記**  
時間ポイント (`"TimePointGranularity": "ALL"`) を指定しない場合、Amazon Forecast は、Impact スコアを計算するときに予測期間全体を考慮します。

Forecast Explainability の時間ポイントを指定すると、Amazon Forecast は、その特定の時間範囲について、属性の Impact スコアを計算します。予測期間内で最大 500 の連続する時間ポイントを指定できます。

例えば、小売業者は、その属性が冬季の売上にどのように影響するかを知りたい場合があります。このユースケースでは、予測期間中の冬季のみにまたがる時間ポイントを指定します。

Forecast コンソールまたは Forecast ソフトウェア開発キット (SDK) を使用して、時間ポイントを指定できます。

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

**Forecast Explainability の時系列を指定するには**

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

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

1. ナビゲーションペインで、[**Insights**] を選択します。

1. **[Create Explainability]** (Explainability を作成) を選択します。

1. **[Explainability name]** (Explainability 名) のフィールドに、Forecast Explainability の一意の名前を入力します。

1. **[Select forecast]** (予測を選択) のフィールドで、予測を選択します。

1. **[S3 のロケーション]** フィールドに、時系列を含むファイルの場所を入力します。

1. **[Data schema]** (データスキーマ) のフィールドで、*[attribute name]* (属性名) を、時系列で使用される項目 ID とディメンションの *[attribute type ]* (属性タイプ) に設定します。

1. **[Time duration]** (期間) のフィールドで、カレンダー内の開始日と終了日を指定します。

1. **[Create Explainability]** (Explainability を作成) を選択します。

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

**Forecast Explainability の時系列を指定するには**

[CreateExplainability](API_CreateExplainability.md) オペレーションを使用して、ExplainabilityName に一意の名前を指定し、ResourceArn の予測 ARN を指定します。次のタイムスタンプ形式を使用して、開始日 (`StartDateTime`) と終了日 (`EndDateTime`) を設定します: `yyyy-MM-ddTHH:mm:ss` (例: 2015-01-01T20:00:00)。

次のデータ型を設定します。
+ `ExplainabilityConfig` - TimeSeriesGranularity の値を [SPECIFIC] に設定し、TimePointGranularity の値を [SPECIFIC] に設定します。
+ `S3Config` - 「Path」の値を時系列ファイルの S3 のロケーションに設定し、「RoleArn」の値を S3 バケットにアクセスできるロールに設定します。
+ `Schema` - item\_id の「AttributeName」と「AttributeType」、および時系列のディメンションを定義します。

次の例は、「item\_id」と「store\_location」のディメンションの組み合わせを使用した時系列のスキーマを示しています。

```
{
    "ExplainabilityName" : [unique_name],
    "ResourceArn" : [forecast_arn],
    "ExplainabilityConfig" {
        "TimeSeriesGranularity": "SPECIFIC",
        "TimePointGranularity": "SPECIFIC"
    },
    "DataSource": {
         "S3Config": {   
            "Path": [S3_path_to_file],          
            "RoleArn":[role-to-access-s3-bucket]
         }
      },
    "Schema": {
         "Attributes": [ 
            { 
               "AttributeName": "item_id",
               "AttributeType": "string"
            },
                        { 
               "AttributeName": "store_location",
               "AttributeType": "string"
            }
         ]
      },
    "StartDateTime": "string",
    "EndDateTime": "string",
}
```

------

## Forecast Explainability の視覚化
<a name="visualizing-forecast-explainability"></a>

コンソールで Forecast Explainability を作成すると、Forecast は Impact スコアを自動的に視覚化します。[CreateExplainability](API_CreateExplainability.md) オペレーションを使用して Forecast Explainability を作成する場合、`EnableVisualization` を「true」に設定すると、その Explainability リソースの影響スコアがコンソール内に視覚化されます。

影響スコアのビジュアライゼーションは、Explainability の作成日から 30 日間存続します。ビジュアライゼーションを再作成するには、Forecast の新しい Explainability を作成します。

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

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

Forecast を使用すると、Impact スコアの CSV ファイルを S3 の場所にエクスポートできます。

エクスポートには、指定された時系列の生の影響スコアと正規化された影響スコア、および指定されたすべての時系列と指定されたすべての時間ポイントの正規化および集約された影響スコアが含まれます。時間ポイントを指定しなかった場合、影響スコアは、予測期間内のすべての時間ポイントで既に集計されています。

![](http://docs.aws.amazon.com/ja_jp/forecast/latest/dg/images/explainability-export.png)


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

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

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

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

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

1. ナビゲーションペインで、[**Insights**] を選択します。

1. Explainability を選択します。

1. **[Actions]** (アクション) のドロップダウンから、**[Export]** (エクスポート) を選択します。

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

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

1. **[IAM Role]** (IAM ロール) のフィールドで、選択した S3 の場所にアクセスできるロールを選択します。

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

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

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

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

例:

```
{
   "Destination": {
      "S3Config": {
         "Path": "s3://bucket/example-path/",
         "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole"
      }
   },
   "ExplainabilityArn": "arn:aws:forecast:region:explainability/example",
   "ExplainabilityName": "Explainability-export-name",
}
```

------

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

Forecast Explainability を使用する場合は、次の制約事項とベストプラクティスを考慮してください。
+ **Forecast Explainability は、AutoPredictor から生成された一部の Forecast でのみ使用できます。**レガシー予測子 (AutoML または手動選択) から生成された Forecast の Forecast Explainability を有効にすることはできません。「[Upgrading to AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)」(AutoPredictor へのアップグレード) を参照してください。
+ **Forecast Explainability は、すべてのモデルで利用できるわけではありません**。ARIMA (AutoRegressive Integrated Moving Average)、ETS (Exponential Smoothing State Space Model)、および NPTS (Non-Parametric Time Series) モデルには、外部時系列データが組み込まれていません。したがって、これらのモデルは、追加のデータセットを含めていても、説明可能性レポートを作成しません。
+ **Explainability には属性が必要** - 予測子には、関連する時系列、項目メタデータ、Holidays、または Weather Index の少なくとも 1 つを含める必要があります。
+ **影響スコアがゼロの場合は影響がないことが示唆されている** - 1 つ以上の属性の影響スコアが 0 の場合、これらの属性は予想値に大きな影響を与えません。AutoPredictor が ML 以外のアルゴリズムのみを使用した場合や、関連する時系列や項目のメタデータを指定しなかった場合も、スコアは 0 になることがあります。
+ **最大 50 の時系列を指定** - Forecast Explainability ごとに最大 50 の時系列を指定できます。
+ **最大 500 の時間ポイントを指定** - Forecast Explainability ごとに最大 500 の連続した時間ポイントを指定できます。
+ **Forecast がいくつかの集約された Impact スコアも計算** - Forecast は、指定された時系列および時間ポイントの集約された影響スコアも提供します。
+ **単一の予測に対して複数の Forecast Explainability リソースを作成する** - 50 を超える時系列または 500 の時間ポイントの影響スコアが必要な場合は、より広範囲にわたる Explainability リソースをバッチで作成できます。
+ **さまざまな Forecast Explainability リソース間での Raw impact スコアを比較する** - Raw Impact スコアは、同じ予測の Explainability リソース間で直接比較できます。
+ **Forecast Explainability のビジュアライゼーションが作成後 30 日間利用可能** - 30 日後にビジュアライゼーションを表示するには、同じ設定で新しい Forecast Explainability のビジュアライゼーションを作成します。