# SHAP
## 概要
SHAP(SHapley Additive exPlanations)は、ゲーム理論のShapley値に基づき、機械学習モデルの予測に対して各特徴量が持つ寄与を正負の方向つきで求めるPythonライブラリである。分類モデル・回帰モデルのいずれも受け取れる。アンサンブルツリーモデル(ランダムフォレスト・XGBoost・LightGBM等)向けには`TreeExplainer`が提供され、`shap_values`で各サンプル・各特徴量のSHAP値を計算し、`summary_plot`で可視化する。目的変数が2値の分類問題であっても、分類器ではなく回帰器(例: `RandomForestRegressor`)として入力したほうがクラスごとの寄与ではなく特徴量の値に応じた予測の変化を直接可視化でき、良い可視化結果が得られる(Source: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 8 機械学習のモデルを解釈する]] §8.8)。
`summary_plot`が出力する図は、縦軸に寄与の大きい順に特徴量を並べ、横軸にSHAP値(0を基準に左が負の寄与・右が正の寄与)、点の色に特徴量の値(青が低い・赤が高い)を同時に表示する。これにより、決定木の可視化(少数変数の組み合わせ条件は見えるが全体を見渡せない)とFeature Importance(全体は見渡せるが寄与の方向がわからない)の双方の弱点を補う(Source: 同上 §8.8)。ディープラーニングの画像分類向けの可視化機能も提供している(Source: 同上 §8.10)。
## 関連
- 概念: [[予測モデルの解釈手法]](解釈手法の「はしご」の最終段) / [[帰属手法]](LLM/深層学習領域での対応する手法群。金融・ヘルスケア領域での高い採用率が報告されている)
- ソース: [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 8 機械学習のモデルを解釈する]]
## 出典
- 有賀康顕・中山心太・西林孝, 『仕事ではじめる機械学習 第2版』, オライリー・ジャパン, 2021, 第8章, §8.8.
- https://github.com/slundberg/shap