Shap beeswarm 图:回归的颜色标准

问题描述 投票:0回答:1

过去,我想出了以下代码,使用 Plotly 将 Shap beeswarm 导出为交互式 HTML 文件:

explainer = shap.Explainer(best_model.predict, X_test)
shap_values = explainer(X_test)

shap_df = pd.DataFrame(
    np.c_[shap_values.base_values, shap_values.values],
    columns = ['Shap_Base'] + list(X_test.columns)
)

shap_df.drop('Shap_Base', axis=1, inplace=True)

values = shap_df.iloc[:,2:].abs().mean(axis=0).sort_values().index
df_plot = pd.melt(shap_df, id_vars=['transaction_id', 'predictions'], value_vars=values, var_name='Feature', value_name='SHAP')

fig = px.strip(df_plot, x='SHAP', y='Feature', color='predictions', stripmode='overlay', height=4000, width=1000, hover_data=['transaction_id', df_plot.index])
fig.update_layout(xaxis=dict(showgrid=True, gridcolor='WhiteSmoke', zerolinecolor='Gainsboro'),
              yaxis=dict(showgrid=True, gridcolor='WhiteSmoke', zerolinecolor='Gainsboro')
)
fig.update_layout(plot_bgcolor='white')
fig.update_layout(boxgap=0)
fig.update_traces(jitter=1)
fig.write_html('beeswarm.html')

我正在按特征着色,这是一个二进制标签。

但是现在我正在研究回归问题。

是否有一种简单的方法以类似的方式设置颜色?

如何从 shap 值中提取信息?

python machine-learning plotly regression shap
1个回答
0
投票

解决了!这是对特征进行分箱的问题。

© www.soinside.com 2019 - 2024. All rights reserved.