使用SHAP分析XGBoost回归器:交互图仅显示部分变量的解决方法
解决SHAP交互效应summary_plot显示全部变量的方法
- 问题根源:
shap.summary_plot针对交互值绘图时,默认只展示交互效应绝对值总和排名靠前的变量,默认显示数量由max_display参数控制,交互效应总和较低的变量会被自动过滤。 - 解决步骤:
- 调用绘图函数时,显式设置
max_display参数为总变量数(这里是16),强制显示所有变量:shap.summary_plot(shap_interaction_values, X, max_display=16) - 如果需要调整变量排序逻辑,可额外设置
sort参数:# 按交互效应总和升序显示(默认是降序sort=True) shap.summary_plot(shap_interaction_values, X, max_display=16, sort=False)
- 调用绘图函数时,显式设置
- 补充说明:如果部分变量的交互效应几乎为0,即使强制显示,绘图中对应的区域也会极小,这属于正常情况,说明这类变量与其他变量的交互对模型输出影响极低。
内容的提问来源于stack exchange,提问作者T_S
相关产品推荐
相关产品推荐

