各サンプルごとの説明変数について、具体的な貢献度を可視化してみます。
force_plot
force_plot関数は、SHAP値と特徴量の貢献度を視覚化することができます。
[Google Colaboratory]
1 | shap.initjs() |
まず、force_plotを使うための前処理メソッド(initjs)を実行します。(1行目)
次に確認したいデータの位置(253行目)を指定します。(2行目)
[実行結果]
上図のbase value(横軸)は、与えられたX_test(テストデータの説明変数)における予測値の平均で、全データ共通の指標です。
それに対し、各説明変数のSHAP値を足し引きした結果、最終的に予測結果がf(x)になるという見方となります。
赤色が価格の上昇に貢献、青色が価格の減少に貢献した説明変数になります。
今回はbase valueが22.75で、各説明変数のSHAP値を足し引きした結果、28.55に予測したことが確認できます。
253行目のデータについては、RMが高くLSTATが低いので、その点では価格の上昇に貢献していますが、PTRATIOが価格の減少に貢献した結果、最終的な予測値が低くなったことが分かります。