2026-04-30·実装·⏱ 約 4 分
SHAP で AI の判断を説明する ─ XAI 実践入門
ブラックボックスな ML モデルの予測根拠を、ゲーム理論ベースの SHAP で可視化する方法。LIME との比較、実装、ビジネスでの活かし方まで。
SHAP(SHapley Additive exPlanations) は、ゲーム理論の Shapley 値 をベースに、ML モデルの予測に対する各特徴量の寄与を厳密に分解する手法。XGBoost・LightGBM・NN 何にでも使えます。
Shapley 値とは
協力ゲームの公平な利得分配
人で協力してゲームに勝ち、賞金 を獲得した。各人の貢献度はどう分けるべきか?
Shapley 値: あらゆる加入順序の組合せで『その人がいる時といない時の差』を平均した値。唯一の公平な分配 であることが理論的に証明されている(対称性・効率性・線形性・無効プレイヤー)。
ML への応用
『特徴量を 1 つずつモデルに加えたとき、予測がどう変わるか』を全順序で平均することで、各特徴量の貢献値 を算出。これが SHAP 値。
TreeSHAP ─ 決定木向け高速版
上記の式は組合せ爆発で計算困難。TreeSHAP は決定木構造を利用して 多項式時間で厳密 に計算可能。XGBoost・LightGBM・CatBoost の標準機能。
Python で SHAP 値を計算
import shap
import xgboost as xgb
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing()
X, y = data.data, data.target
model = xgb.XGBRegressor(n_estimators=100).fit(X, y)
# TreeSHAP で全特徴量の寄与を算出
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X[:100])
# 寄与度のサマリープロット
shap.summary_plot(shap_values, X[:100], feature_names=data.feature_names)
# 個別予測の Force プロット
shap.force_plot(explainer.expected_value, shap_values[0], X[0], matplotlib=True)SHAP vs LIME
- SHAP: 理論的裏付けあり、グローバル/ローカル両対応、決定木で高速
- LIME: モデル非依存、特定サンプル周辺を線形近似、画像・テキストでも使える
- 両方を組み合わせて使うのが実務の定石
ビジネスでの活かし方
- 金融: 与信スコアの根拠を顧客に説明(GDPR の説明権対応)
- 医療: 診断 AI が『なぜこの病気と判定したか』を医師に提示
- 採用: 候補者選抜の理由を透明化(差別防止)
- Kaggle: 自分の特徴量がどれだけ効いているかを可視化 → 改善
💡 SHAP は『局所 + 大域』を統一的に扱える
個別予測の寄与(Force プロット)もモデル全体の傾向(Summary プロット)も同じ枠組みで見られる。LIME は局所だけ、Permutation Importance は大域だけ。統一的に扱えるのが SHAP の強み。
関連
- [ブログ: モデル解釈性 入門](/blog/model-interpretability-shap)
- [G 検定 教科書](/certs/g-test/textbook) ─ XAI を概念ベースで
- [特徴量エンジニアリング](/blog/feature-engineering-101)
Related Articles
関連記事
- 2026-04-30実装Slack Bot を LLM で作る ─ FastAPI + OpenAI で社内ツール化Slack の Slash Command と Events API を使い、社内チャンネル内で動く LLM Bot を構築。FastAPI バックエンド + OpenAI で 1 日で完成。
- 2026-04-30実装FastAPI 入門 ─ ML モデルを 5 分で API にするPython の高速 Web フレームワーク FastAPI を使って、ML モデルを REST API として公開する最短ルート。型ヒント・自動ドキュメント・非同期対応の 3 拍子。
- 2026-04-30実装Docker 入門 ─ ML 環境の再現性を担保する「自分の PC では動く問題」を解決する Docker。ML プロジェクトの Dockerfile・GPU 対応・docker-compose・Multi-Stage Build までを実用視点で。