微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

负责本地SHAP值的前N个功能

如何解决负责本地SHAP值的前N个功能

我一直在尝试在我的ML中使用SHAP值,以帮助了解每个功能对局部结果的贡献。我了解所有功能的SHAP值总和可以解释为什么预测与基线值不同。这样我们就可以在这样的图中分解预测:

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_train)
i = 400
shap.force_plot(explainer.expected_value,shap_values[i],features=X_train.loc[400],feature_names=X_train.columns)

enter image description here

我想知道是否有办法获得对SHAP值有正面和负面影响的前3个功能 在我的例子中

  1. LSTAT,PTRATIO和INDUS有助于将值推向右侧
  2. RM,税收,Rad推向另一个方向

我需要将这些功能作为数组或数据框使用,以便对它们进行进一步的操作

解决方法

对您的示例有正面贡献的3大功能:

i = 400
features = X_train.columns
id_sorted = np.argsort(shap_values[i])
top3_positive = features[id_sorted[:-4:-1]]

前3个负面影响的功能:

top3_negative = features[id_sorted[:3]]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。