目次
1章 機械学習の解釈性とは
- 1.1 機械学習の解釈性を必要とする理由
- 1.2 予測精度と解釈性のトレードオフ
- 1.3 機械学習の解釈手法
- 1.4 機械学習の解釈手法の注意点
- 1.5 本書の構成
- 1.6 本書に書いていること,書いていないこと
- 1.7 本書で用いる数式の記法
- 1.7.1 確率変数と実測値
- 1.7.2 期待値と分散
- 1.7.3 確率分布
- 1.7.4 線形回帰モデル
- 1.7.5 集合
- 1.8 本書のコードを実行するためのPython環境
- 1.9 参考文献
2章 線形回帰モデルを通して「解釈性」を理解する
- 2.1 線形回帰モデルの導入
- 2.1.1 回帰問題と線形回帰モデル
- 2.1.2 最小二乗法による回帰係数の推定
- 2.2 線形回帰モデルが備える解釈性
- 2.2.1 特徴量と予測値の平均的な関係
- 2.2.2 特徴量と予測値のインスタンスごとの関係
- 2.2.3 特徴量の重要度
- 2.2.4 インスタンスごとの予測の理由
- 2.3 実データでの線形モデルの分析
- 2.3.1 データの読み込み
- 2.3.2 データの前処理
- 2.3.3 線形モデルの学習と評価
- 2.3.4 予測誤差の計算
- 2.3.5 線形回帰モデルの解釈
- 2.3.6 Random Forestによる予測
- 2.4 線形回帰の利点と注意点
- 2.5 参考文献
3章 特徴量の重要度を知る〜Permutation Feature Importance〜
- 3.1 なぜ特徴量の重要度を知る必要があるのか
- 3.2 線形回帰モデルるにおける特徴量の重要度
- 3.2.1 シミュレーションデータの設定
- 3.2.2 シミュレーションデータの生成
- 3.2.3 線形回帰モデルの特徴量重要度の確認
- 3.3 Permutation Feature Importance
- 3.3.1 PFIのアルゴリズム
- 3.3.2 PFIの実装
- 3.3.3 PFIのシミュレーションデータへの適用
- 3.4 Leave One Covariate Out Feature Importance
- 3.5 Grouped Permutation Feature Importance
- 3.5.1 特徴量が相関するケース
- 3.5.2 GPFIの実装
- 3.5.3 GPFIのシミュレーションデータへの適用
- 3.6 特徴量重要度は因果関係として解釈できるか?
- 3.6.1 疑似相関
- 3.6.2 疑似相関のシミュレーション
- 3.7 訓練データとテストデータのどちらで予測精度を評価するべきか
- 3.8 実データでの分析
- 3.9 PFIの利点と注意点
- 3.10 参考文献
4章 特徴量と予測値の関係を知る〜Partial Dependence〜
- 4.1 なぜ特徴量と予測値の関係を知る必要があるのか
- 4.2 線形回帰モデルと回帰係数
- 4.2.1 シミュレーション1:線形の場合
- 4.2.2 シミュレーション2:非線形の場合
- 4.3 Partial Dependence
- 4.3.1 1つのインスタンスの特徴量とモデルの予測値の関係
- 4.3.2 すべてのインスタンスに対する特徴量と予測値の平均的な関係
- 4.3.3 Partial Dependenceクラスの実装
- 4.3.4 Partial Dependenceの数式表現
- 4.4 Partial Dependenceは因果関係として解釈できるのか
- 4.4.1 シミュレーション3:相関関係と因果関係
- 4.4.2 PDを因果関係として解釈することの危険性
- 4.5 実データでの分析
- 4.5.1 PDによる可視化
- 4.6 PDの利点と注意点
- 4.7 参考文献
5章 インスタンスごとの異質性をとらえる〜Individual Conditional Expectation〜
- 5.1 なぜインスタンスごとの異質性をとらえる必要があるのか
- 5.2 交互作用とPDの限界
- 5.2.1 シミュレーションデータの生成
- 5.2.2 PDの可視化
- 5.3 Individual Conditional Expectation
- 5.3.1 ICEの実装
- 5.3.2 ICEのシミュレーションデータへの適用
- 5.4 Conditional Partial Dependence
- 5.4.1 CPDの数式表現
- 5.4.2 CPDの可視化
- 5.5 ICEの解釈
- 5.5.1 what-if
- 5.5.2 特徴量に依存関係があるケース
- 5.6 実データでの分析
- 5.7 ICEの利点と注意点
- 5.8 参考文献
6章 予測の理由を考える〜SHapley Additive exPlanations〜
- 6.1 なぜ予測の理由を考える必要があるのか
- 6.2 SHAPのアイデア
- 6.2.1 SHAPの数式表現
- 6.2.2 貢献度の分解:線形回帰モデルの場合
- 6.3 協力ゲーム理論とShapley値
- 6.3.1 アルバイトゲーム
- 6.3.2 限界貢献度
- 6.3.3 Shapley値の数式表現
- 6.4 SHapley Additive exPlanations
- 6.4.1 特徴量が分かっている/分かっていない場合の予測値
- 6.4.2 具体例:特徴量が2つの場合
- 6.5 SHAPの実装
- 6.5.1 SHAPの実装
- 6.5.2 `ShapleyAdditiveExplanations`クラスの実装
- 6.6 実データでの分析
- 6.6.1 shapパッケージの導入
- 6.6.2 SHAP値の可視化
- 6.7 ミクロからマクロへ
- 6.7.1 SHAPによる特徴量重要度の可視化
- 6.7.2 SHAPによるPDの可視化
- 6.8 SHAPの利点と注意点
- 6.9 参考文献
付録A: Rによる分析例〜tidymodelsとDALEXで機械学習モデルを解釈する〜
- A.1 tidymodelsとDALEX
- A.2 データの読み込み
- A.3 tidymodelsによる機械学習モデルの構築
- A.4 DALEXによる機械学習モデルの解釈
- A.4.1 PFIで特徴量の重要度を知る
- A.4.2 PDで特徴量と予測値の平均的な関係を知る
- A.4.3 ICEで特徴量と予測値のインスタンスごとの関係を知る
- A.4.4 SHAPでインスタンスごとの予測の理由を知る
- A.5 まとめ
- A.6 参考文献
付録B: 機械学習の解釈手法で線形回帰モデルを解釈する
- B.1 なぜ機械学習の解釈手法で線形回帰モデルを解釈するのか
- B.1.1 線形回帰モデルの設定
- B.1.2 シミュレーションの設定
- B.1.3 線形回帰モデルの学習
- B.2 線形回帰モデルとPFIの関係
- B.2.1 シミュレーションによる比較
- B.2.2 数式による比較
- B.3 線形回帰モデルとPDの関係
- B.3.1 数式による比較
- B.3.2 シミュレーションによる比較
- B.4 線形回帰モデルとICEの関係
- B.4.1 数式による比較
- B.4.2 シミュレーションによる比較
- B.5 線形回帰モデルとSHAPの関係
- B.5.1 数式による比較
- B.5.2 シミュレーションによる比較
- B.6 まとめ
- B.7 考文献