## 4章 特徴量と予測値の関係性を知る 〜Partial Dependence〜 『機械学習を解釈する技術』輪読回 2021年10月30日(土) S.Kanai --- ### 🔖 4.1 なぜ特徴量と予測値の関係性を知る必要があるのか * 3章のPFIで求めるような **重要度** では、特徴量が変化した時の予測値の動きが分からない。 * 4章のPDは、特徴量と予測値の **関係の大枠** を知ることができる。 例 * PFI : アイスの売り上げ予測には、気温が重要である * PD : 気温が高くなると、アイスの売り上げの予測値が高くなる ---- ![](https://asset.watch.impress.co.jp/img/trw/docs/1325/186/002_o.jpg) https://travel.watch.impress.co.jp/docs/news/1325186.html ---- PDの用途 * モデルのデバッグ - PDの傾向は常識と一致するか? - 例 : 気温が高いとアイスが売れなくなるモデルはバグの可能性 * 意思決定の仮説 目的変数を最大化するように変数を操作する - 例 : 広告出稿料が高いとアイスの売り上げが高いなら、広告出稿料を増額する - 注 : PDは因果関係を示すとは限らないので、↑のような仮説を因果推論で確かめるのが良い --- ### 🔖 4.2 線形回帰モデルと回帰係数 * 線形回帰モデルは、回帰係数がそのまま特徴量と予測値の関係を示す。 - しかし、非線形な関係は正確に記述できない。 * Random Forest(等の非線形モデル)は、非線形な関係も学習できる。 - しかし、回帰係数のように特徴量と予測値の直接的な関係は取り出せない。 ---- 参考 : Random Forest の原理 ![](https://www.researchgate.net/profile/Azwa-Aziz/publication/325966978/figure/fig1/AS:836586916831232@1576469272120/Random-Forest-Principle-17.png) https://www.researchgate.net/figure/Random-Forest-Principle-17_fig1_325966978 --- ## 🔖 4.3 Partial Dependence ---- ### 4.3.1 1つのインスタンスの特徴量とモデルの予測値の関係 あるインスタンスに注目して、特徴量を動かした時の予測値の動きを可視化する。 不正会計検知モデルでの例 1. とある会社の財務情報を1つ選ぶ 1. 興味のある特徴量 **以外の** 特徴量の値を固定する 1. 興味のある特徴量の値を **変化させて** 、その都度の **予測値** をプロットする ---- ### 4.3.2 すべてのインスタンスに対する特徴量と予測値の平均的な関係 すべてのインスタンスの、特徴量を動かした時の予測値を、特徴量の値ごとに平均する。 不正会計検知モデルでの例 1. 全てのデータセットを利用する 1. 興味のある特徴量 **以外の** 特徴量の値を固定する 1. 興味のある特徴量の値を **変化させて** 、その都度の **予測値の平均値** をプロットする これが、Partial Dependence ---- ![](https://cdn-ak.f.st-hatena.com/images/fotolife/d/dropout009/20190107/20190107002309.png) https://dropout009.hatenablog.com/entry/2019/01/07/124214 ---- ### 4.3.3 Partial Dependence クラスの実装 (省略) ---- ### 4.3.4 Partial Dependence の数式表現 モデルの興味のある特徴量の周辺分布。すなわち、特徴量にある値を入れた時の、平均的な予測値を表す。 $$ PD_j\left(x_j\right)= E\left[\hat{f}\left(x_j, \bf{X}_{\\\j}\right)\right] \\ = \int\hat{f}\left(x_j, \bf{x}_{\\\j}\right)p\left(\bf{x}_{\\\j}\right) d\bf{x}_{\\\j} $$ ---- ※興味のあるもの以外の特徴量ベクトルを、母集団の分布に従うように発生させたいので、元データをそのまま使っている。 なので、母集団の分布が使えるならば、それに従う乱数で特徴量ベクトルを生成すれば良い。多くのデータを生成すればPDの精度が上がると思う。 --- ## 🔖 4.4 Partial Dependence は因果関係として解釈できるのか ---- ### 4.4.1 シミュレーション3 : 相関関係と因果関係 * 目的変数と特徴量の散布図では、相関のある他の特徴量の影響が排除されない。 * 上手く学習ができているモデルのPDプロットは、特徴量同士の影響が排除された結果を示す。 ---- ![](http://drive.google.com/uc?export=view&id=1fIEYv8Qo1D2Y2igc-rQ2jTwc4Q-MXqs1) ![](http://drive.google.com/uc?export=view&id=1K_W_MU0IfGvlFan-Nj06CUymkC31-B1m) ---- ### 4.4.2 PDを因果関係として解釈することの危険性 * モデルに投入されていない変数の影響は、PDを使っても排除できない。 * PDの結果を、目的変数と特徴量の **因果関係** として解釈することは危険。 * PDの結果を、目的変数と特徴量の **平均的な関係** として解釈することは安全。 --- ### 🔖 4.5 実データでの分析 * ボストン住宅価格データセット - 目的変数 : 住宅価格 - 特徴量 : 部屋の数, 都心からの距離, 犯罪率, 他 - モデル : ランダムフォレスト ---- ### 4.5.1 PDによる可視化 * 部屋の数が多いと、住宅価格が高い。 * 都心からの距離が遠いと、住宅価格が低い。 ---- ### 4.5.2 散布図による可視化 * 都心からの距離が遠いと、住宅価格が高い。 - PDの結果と異なり、直感にも反する。 * (実は)都心からの距離が遠いと、犯罪率が低い。 * 犯罪率が低いと、住宅価格が高い。 ---- ![](http://drive.google.com/uc?export=view&id=1NTv4KtfkdqkvbTdYXSwVGhvGOgi_adfH) ![](http://drive.google.com/uc?export=view&id=169efzsKltFcvkasUGr96dUosiD-SIaD-) ---- PDは、散布図では捉えられない背後関係を排除できる。 --- ### 🔖 4.6 PDの利点と注意点 利点 * どんな機械学習モデルでも使える * 特徴量の予測値への影響の与え方が知れる * 非線形な関係も把握できる * 他の特徴量の影響を考慮している ---- 注意点 * 見ている関係は、あくまで特徴量と **予測値** ($\neq$目的変数の値) * 見ている関係は、特徴量と予測値の **平均的な** 関係 個別のインスタンスにおける関係性は、5章ICEで見れる --- ### 🔖 考察 * 会計不正検知での実用では、モデルの説明のために使えそう。論文や監査法人への営業資料で見せるイメージ。 * GPFIで重要度の高い特徴量グループに興味がある場合は、グループの組み合わせでPDを計算するとよさそう。 * カテゴリ変数でもPDは利用できそう。全てのカテゴリ実現値を代入して、予測させる。 ---- * [PDの解説資料](https://web.stanford.edu/~hastie/Papers/ESLII.pdf) p.388 - ↑はscikit-learn(Pythonの機械学習ライブラリ)の[PD使用例のページ](https://scikit-learn.org/stable/auto_examples/inspection/plot_partial_dependence.html#sphx-glr-auto-examples-inspection-plot-partial-dependence-py)に記載あり。
{"metaMigratedAt":"2023-06-16T13:22:48.180Z","metaMigratedFrom":"YAML","title":"4章 特徴量と予測値の関係性を知る 〜Partial Dependence〜","breaks":true,"slideOptions":"{\"theme\":\"solarized\",\"center\":false}","contributors":"[{\"id\":\"cd914c65-f365-4696-a9f0-ae1c50821785\",\"add\":5512,\"del\":1484}]"}
    703 views