Anaconda中SHAP瀑布图特征截断如何显示全部特征
SHAP瀑布图全量特征展示方案
waterfall()函数默认最多展示10个对当前样本预测贡献最高的特征,剩下贡献度较低的特征会被合并为"other features"项,这就是你看到截断提示的原因。
要展示所有特征,只需在调用绘图函数时传入max_display参数,将值设置为数据集的总特征数即可——只要参数值大于等于数据集的特征总数,就不会触发特征合并逻辑。
修正后的可运行代码如下:
explainer = TreeExplainer(model) sv = explainer(X) exp = Explanation(sv.values[:,:,0], sv.base_values[:,1], data=X.values, feature_names=X.columns) idx = 0 # 传入max_display参数,X.shape[1]就是数据集的总特征数 waterfall(exp[idx], max_display=X.shape[1])
- 如果特征总数超过25个,全量展示的瀑布图纵向长度会过长,容易出现特征名重叠、排版拥挤的问题,可以在绘图前通过matplotlib手动设置画布尺寸适配,也可以根据需求适当调整
max_display的数值,平衡展示效果和信息完整性。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

