02.9
モデル解釈性
まとめ
モデル解釈性の章では、深さ 4 の木を 100 本積んだ XGBoost のように内部を読めないモデルに対して、「なぜその予測になったか」を特徴量ごとの数値や曲線で説明する手法を学びます。SHAP は 1 件の予測を「基準値 + 各特徴量の貢献」に分解し、30 個の値を足すと予測値に一致する加法性を持つので、個別予測の根拠(ローカル解釈)と全件を重ねた傾向(グローバル解釈)の両方に使えます。PDP / ICE は注目する 1 列だけを動かして予測の変化を曲線にする手法で、所得が増えると住宅価格がどう変わるかのような「効き方の形」を見せます。どちらも scikit-learn や
shap ライブラリの関数 1 つで描け、この章ではその読み方と落とし穴を扱います。直感 #
高精度なモデルほど内部は複雑になり、XGBoost の木 100 本をたどって「なぜこの患者を悪性と予測したか」を人が読むことはできません。解釈性手法はモデルを開く代わりに、入力を少し変えたときの出力の変化を観察して中身を推定します。SHAP は「この特徴量を知らなかったら予測はいくら変わるか」を全順序で平均し、PDP は「この列の値を 50 段階に書き換えたら予測の平均はどう動くか」をなぞります。どちらも特徴量ごとの貢献度や予測の根拠を図にする技術で、feature_importances_ の「どれが重要か」の一歩先、「どう効いているか」に答えます。
この章の構成 #
このチャプターで学べること #
- SHAP — ゲーム理論の Shapley 値で予測を分解する手法。beeswarm でグローバル、waterfall でローカルの解釈ができる
- PDP / ICE — 1 列を動かしたときの予測の平均(PDP)とサンプルごとの曲線(ICE)で、特徴量の効き方の形と交互作用を可視化する手法
これがわかるとできること #
- 「この患者をなぜ悪性と予測したか」のような個別予測の根拠を、SHAP の waterfall で特徴量ごとの数値として説明できる
- 特徴量の重要度だけでなく「所得が 5 を超えると価格の伸びが鈍る」のような方向性と非線形性を PDP で把握できる
- 「築年数が古いほど高い」のような直感に反する曲線から、モデルのバグやデータの偏りを発見できる
学習の進め方 #
まず SHAP で、乳がんデータに当てた XGBClassifier を TreeExplainer で分解し、beeswarm・waterfall・scatter の 3 つの図でローカルとグローバルの解釈を押さえます。次に PDP / ICE で、カリフォルニア住宅価格のモデルを PartialDependenceDisplay で可視化し、1 列の効果の形と ICE の帯の割れ方から交互作用を読む方法に進みます。最後に、どちらもモデルの振る舞いであって因果ではないという注意点を、HouseAge の曲線を例に確認します。