SEが最近起こったことを書くブログ

ITエンジニアが試したこと、気になったことを書いていきます。

SHAP理解できたこと

まだまだ勉強中ですが、SHAPについて理解できたことをメモしておく。

ちゃんと理解できていないので、間違いがあると思いますが、 その際は優しくご指摘いただけると幸いです。

近似するモデルについて

  • 予測結果に対する各変数の寄与を求める手法
  • 学習したモデルを変数の寄与が説明しやすいモデルで近似する
    • 近似したモデルでは各変数の寄与度が分解されている
  • ある変数を追加したときと追加していないときのモデルの結果を比較することで、変数の寄与度を計算する

  • 以下の性質を持つように制約を加える

    • 近似したモデルは元のモデルと同じ入力の場合に同じ出力をする
    • ある変数が存在しないときはその変数の寄与度は0になる
    • 元のモデルで比べたときに変数iのモデルAへの寄与度のほうがモデルBよりも大きい場合は、モデルAを近似したモデルのほうがモデルBを近似したモデルよりも変数iの寄与度が大きい
  • 上記の制約により近似したモデルは一意に定まる

    • それぞれの変数の寄与度は以下のように計算できる
      • ある変数が現れるすべての順列のパターンでどれぐらいの貢献をするかの平均を計算する
        • 何番目かやそれ以前にどの変数が追加されているかにより、その変数を追加したときの寄与度が異なるため、順列のパターンで計算する

参考情報

logmi.jp

engineering.mercari.com

www.slideshare.net

書いてみて少しだけ理解が進んだ気がする