jiku log

データサイエンスの核心を掴む : 学びと発見の記録

「機械学習を解釈する技術」を読む ~第5章 インスタンスごとの異質性をとらえる ①ICE~

はじめに

製造業の業務で機械学習モデルを運用する際に重要になる説明性・解釈性を把握するための手法を学ぶために,森下光之助 著 「機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック」を読むことにした。

本記事は,「第5章 インスタンスごとの異質性をとらえる~Individual Conditional Expectation~」の読書メモである。

  • 本書の紹介ページ

機械学習を解釈する技術 〜予測力と説明力を両立する実践テクニック:書籍案内|技術評論社

  • 関連コード

GitHub - ghmagazine/ml_interpret_book

本記事を読むことで得られること

本記事では,以下のポイントについて説明する。

  • PDでは特徴量と予測値の関係を正しく捉えられないようなシチュエーション
  • 交互作用がある場合など,PDが苦手とする場面で有用な手法であるICE・CPD

第5章 インスタンスごとの異質性をとらえる~Individual Conditional Expectation~

第4章では,特徴量と予測値の平均的な関係を捉える手法であるPartial Dependence (PD)について説明していた。本章では,インスタンスごとの特徴量と予測値の関係に注目するIndividual Conditional Expectationについて説明している。

5.1 なぜインスタンスごとの異質性をとらえる必要があるのか

Partial Dependence (PD)は,特徴量と予測値の平均的な関係(注目している特徴量以外の特徴量は,インスタンスごとに平均を取る)を見ていた。
しかし実際は,特徴量と予測値の関係はインスタンスごとに異なることが想定される。

たとえば,飲食店の顧客満足度を予測するモデルを考える。料理のボリュームと満足度の関係に着目すると,

  • 若年層は料理のボリュームが多くなると満足度が上がる
  • 高齢層は料理のボリュームが多くなっても満足度が上がらない

といった関係があるかもしれないが,PDでは若年層も高齢層も混ぜて平均を取るので,このような特徴を捉えることが難しい。


PDでは,ひとつひとつのインスタンスに対する予測値を求めて,その平均を取っていた。


 \begin{align}
\widehat{\mathrm{PD}}_j (x_j) = \frac{1}{N} \sum_{i=1}^N \hat{f} (x_j, \boldsymbol{\mathrm{x}}_{i, \backslash j})   \\
\end{align}

ただし, \hat{f}(\boldsymbol{\mathrm{X}}) はターゲットの特徴量, \boldsymbol{\mathrm{x}}_{i, \backslash j} = (x_{i,1}, ..., x_{i,j-1}, x_{i,j+1}, ..., x_{i,J})インスタンス iに対する j番目の特徴量を除いたベクトルである。


本章で紹介するIndividual Conditional Expectation (ICE)は,平均を取らず,ひとつひとつのインスタンスにおける特徴量とモデルの予測に注目する手法である。


 \begin{align}
\widehat{\mathrm{ICE}}_{i, j} (x_j) =  \hat{f} (x_j, \boldsymbol{\mathrm{x}}_{i, \backslash j})   \\
\end{align}

5.3 Individual Conditional Expectation

本節では具体例として,交互作用がある場合のICEを紹介している。

ICEの理論値のモデルとして


 \begin{align}
\mathrm{ICE}_{i, 1}(x_1) &= \hat{f} (x_{i,0}, x_1, x_{i, 2}) \\ \\
&= x_{i, 0} - 5 x_1 + 10 x_1 x_{i,2} \\
\end{align}

を考えると,

  •  x_{i, 2}=0のとき左辺は x_{i, 0} - 5 x_1となるので右下がり
  •  x_{i, 2}=1のとき左辺は x_{i, 0} + 5 x_1となるので右上がり

となる。このように交互作用がある場合,注目している変数以外の変数(ここでは x_2)のインスタンスによって,数式の傾向が変わる。
このようなときにPDを用いると,特徴量と予測値の関係を上手くとらえることができない。

5.4 Conditional Partial Dependence

本節では,PDの改良版であるConditional Partial Dependenceについて説明している。

PDの問題点は,全インスタンスで平均を取ることにより,交互作用がある場合その効果が打ち消されることであった。そうであれば,交互作用がある場合はその変数で条件付けてPDを計算しようというのがConditional Partial Dependence (CPD) の発想である。

CPDの計算例は以下のようになる。


 \begin{align}
\widehat{CPD}_{1, 2}(x_1, 0) = \frac{1}{N_0} \sum_{i:x_{i,2}=0} \hat{f} (x_{i,0}, x_1, 0), \\ \\
\widehat{CPD}_{1, 2}(x_1, 1) = \frac{1}{N_1} \sum_{i:x_{i,2}=1} \hat{f} (x_{i,0}, x_1, 1) \\ 
\end{align}


一般化すると,CPDは以下のように定義される。


 \begin{align}
\mathrm{CPD}_{j, k}(x_j, x_k) &= \mathbb{E} \left [ \hat{f}(x_j, X_k, \boldsymbol{\mathrm{X}}_{\backslash \{j,k\}}) \lvert X_k = x_k   \right ]  \\ \\
&= \int \hat{f}(x_j, X_k, \boldsymbol{\mathrm{x}}_{\backslash \{j,k\}})  p(\boldsymbol{\mathrm{x}}_{\backslash \{j,k\}}  \lvert x_k) d \boldsymbol{\mathrm{x}}_{\backslash \{j,k\}}  \\
\end{align}

データからCPDを推定する場合は, X_k = x_kとなるインスタンスに対してPDを計算すればよい。


 \begin{align}
\widehat{\mathrm{CPD}}_{j, k}(x_j, x_k) = \frac{1}{N_k} \sum_{i:x_{i, k} = x_k}  \hat{f}(x_j, X_k, \boldsymbol{\mathrm{x}}_{\backslash \{j,k\}})  \\ 
\end{align}

まとめと感想

今回は,「第5章 インスタンスごとの異質性をとらえる~Individual Conditional Expectation~」における,ICEの定義とその性質についてまとめた。

ICEは,交互作用があるときのように,インスタンスによって数式が傾向(回帰係数の傾きなど)が変わる時に,特徴量と予測値の関係を正しくとらえるのに有用であることが理解できた。その数式の特徴から,特徴量が0/1の2値変数のときなどは扱いやすい。

ICEは1つのサンプルについて議論しているが,CPDはある特徴量が同じ値のサンプルの平均を取るので,ノイズに対して安定していると言える。実践する際には上手く使い分けたい。


本記事を最後まで読んでくださり,どうもありがとうございました。