# SHAP分析

このノートブックは、[SHAP（SHapley Additive exPlanations）](https://christophm.github.io/interpretable-ml-book/shap.html)値を使用して、予測結果における特徴量の相対的な重要度を解釈する方法を示します。SHAP分析の詳細については、こちらの[TDブログ記事](https://blog.treasuredata.com/blog/2021/06/29/multi-touch-attribution-mta-with-shapley-values-tells-marketers-what-works-best/)をご覧ください。

サンプルの可視化は以下の通りです:

![](/assets/image2023-3-7_14-44-12.166d8f68ff61e1f2f90a10047ea424a9857d4d3602a5615718cfaf02e6f84326.3cb60505.png)

![](/assets/image2023-3-7_14-46-9.e510e5121e3b893e866ada234b5744acc84dd5a611475a4728e90483e89780e3.3cb60505.png)ワークフロー例

[Treasure Boxes](https://github.com/treasure-data/treasure-boxes/blob/automl/machine-learning-box/automl/shapley.dig)でサンプルワークフローを確認できます。


```yaml
+explain_predictions_by_shap:
  ipynb>:
    notebook: shapley
    model_name: gluon_model         # 予測に使用されるモデル
    input_table: ml_test.gluon_test # 予測に使用されるテストデータ
```

### パラメータ

| パラメータ名 | コンソール上のパラメータ | 説明 | デフォルト値 |
|  --- | --- | --- | --- |
| docker.task_name | Docker Task Mem | タスクメモリサイズ。契約プランに応じて、64g、128g（デフォルト）、256g、384g、512gから選択可能 | 128g |
| model_name | Model Name | 予測モデル名 | - |
| input_table | Input Table | dbname.table_name形式でTDテーブルを指定 | - |
| shared_model | Shared Model | 共有モデルのUUIDを指定 | None |
| sampling_threshold | Sampling Threshold | サンプリングに使用される閾値。詳細は実行されたノートブックを参照してください。 | 10_000_000 |
| hide_table_contents | Hide Table Contents | テーブルコンテンツの表示を抑制 | false |
| explain_threshold | Explain Threshold | Shapley値を説明する行数 | 200 |
| interpret_samples | Interpret Samples | 予測を解釈するためのサロゲートモデルを構築するサンプル数 | 100 |
| export_shap_values | Export Shap Values | Shapley値をTDテーブルとしてエクスポート | None |