HOME/Articles/

shap.dependence_plotでラベルエンコーディングした変数の目的変数への影響を見る

Article Outline

shap.dependence_plotでラベルエンコーディングした変数の目的変数への影響を見る

# shap dependence plot
# 各カラムのカテゴリーが目的変数にどう効いているか確認
cat_cols = ['A','B','C','D','E','F','G','H','I']
dim = len(cat_cols)
fig=plt.figure(figsize=(30,30))
for i, cat_col in enumerate(cat_cols):
    ax = plt.subplot(round(np.ceil(dim/np.sqrt(dim))), round(np.ceil(dim/np.sqrt(dim))), i+1)
    shap.dependence_plot(cat_col, shap_value  # ラベルエンコーディング後のdfで得たshap値
                        , X_valid_shap  # ラベルエンコーディング後のdf
                        , display_features=X_valid_shap.replace(le_list)  # ラベルエンコーディング前のdf
                        , show=False, interaction_index='Z', ax=ax)  # 相互作用はZを見る

    ax.set_xlabel('Categories')
    ax.set_ylabel('SHAP Values')
    ax.set_title(cat_col)
    ax.axhline(y=0, c='gray', ls='--')
    plt.rcParams["font.family"] = prop.get_name()
plt.tight_layout()
plt.show()