データ分析関連のまとめ

データ分析・機械学習周りのもくもく会LTやイベント参加をまとめていきます

可視化アルゴリズムSHAPの論文を読みました②

機械学習の可視化アルゴリズムであるSHAPの論文を読みました
今回の目標は、SHAPライブラリを実務で使えるレベルまで各指標・プロットを理解することとしました

SHAPとはどのようなものか?

  • ある予測モデルが予測結果を算出した時に、なぜその予測になるのかを理解することは重要だが、昨今の高精度なモデルは複雑で解釈が困難である。
  • その問題を解決するために、予測を解釈する手法SHAP (SHapley Additive exPlanations)がつくられた。
  • SHAPにおける重要なSHAP valueがあるが、これはゲーム理論のSharpley valueを基にしている (Sharpley valueに関しては下記でまとめました) yhiss.hatenablog.com
  • この手法は局所的な解釈と大域的な解釈の両方が可能です

    Additive Feature Attribution Methods

    可視化する際のExplanation modelは下記の式で表される


 g(z^{'}) = {\phi}_0 + \sum_{i=1}^{M}{\phi}_{i}z_i^{'}

 z_i^{'} \in \{0,1\}^M,\phi \in \mathbb{R}

また、Explanation modelにおけるShap value(変数の貢献度)は下記のように表せる


 {\phi}_i(f,x) = \sum_{z^{'}{\subseteq}x^{'}}\frac{|z~{'}|!(M-|z~{'}|-1)!}{M!}(f_x(z^{'})- f_x(z^{'}/i))

可視化アルゴリズムSHAPでは、主にこのSHAP valueを指標としてグラフ化されます

可視化について

Supervised Clustering(force_plot)

下記のグラフは論文で使われているUCI Censusのデータ(国勢調査に基づいて所得が$50k/年を超えるか否か)を使った結果です
ここでSupervised Clusteringが使われているのですが、手法はhierarchical agglomerative clustering(階層的凝集型クラスタリング)を使っているようです

f:id:yhiss:20191005151343p:plain
Supervised Clusteringの例、コメント部分にクラスタリング手法についての記載がある

hierarchical agglomerative clustering(階層的凝集型クラスタリング)

  • クラスター分析の手法の一つ

    分析プロセス

  • 個体間の距離を計算

  • クラスター分析の手法を選択
  • 手法の行列を求める
  • 樹形図(dendgram)を作成

    分析手法

  • 最近隣法、最遠隣法、群平均法、重心法、メディアン法、ウォード法等がある

  • SHAPにおいてどの手法を使っているのかはわかりませんでした
  • クラスタリングだけでなく、sort等もできるのでレポートにまとめるよりは、レビュー等で様々な写し方に変えてみる方がより有効に使えそうな印象です

    Summary_plots

  • 各変数が予測モデルに対してどの程度重要かを表しています

    作られ方

  • 各変数は下記のglobal impact(各SHAP valueの絶対値の総和)によりsortされる

\sum_{j=1}^{N}|{\phi}_i^{(j)}|

  1. 変数におけるそれぞれの点は各サンプルのSHAP valueの値によってプロットされる
  2. 変数の値自体の大きさは色で表されるので、SHAP valueとの相関も直観的にわかるようになっています
  3. このグラフの上位変数のようにきれいなグラデーションになる場合はわかりやすいですが、赤→青→赤となるような分布の場合、解釈は難しくなりそうです。

f:id:yhiss:20191005160706p:plain
上に有るほど重要度の高い変数となる

Dependence plots

  • 変数が出力に対してどのような分布をしているかがわかります
  • X軸:変数の値、Y軸:SHAP Valueの値、色:別の変数の値
  • 似たような結果を出してくれるPartial Dependence Plotsでは線しか描けないのに対して、他の変数との関係性もわかります
  • 情報が多い分、ぱっと見てわかりづらい分布が出来る可能性もあります
    f:id:yhiss:20191005164616p:plain
    SHAP dependence plot

まとめ

  • SHAPはモデルに対するSHAP value(貢献度)を算出しそれを使って解釈することができる
  • 様々なグラフをプロットできるため、1つのアルゴリズムで複数の見方が出来る
  • 但し、点や色等情報量が多い上軸がSHAP valueのため他者への説明の際にはより提供する情報の整理が必要になりそう

参考文献
Scott M. Lundberg, Gabriel G. Erion, and Su-In Lee:Consistent Individualized Feature Attribution for Tree Ensembles https://arxiv.org/pdf/1802.03888.pdf

[連載] フリーソフトによるデータ解析・マイニング 第28回 Rとクラスター分析(1) https://www1.doshisha.ac.jp/~mjin/R/Chap_28/28.html