【问题标题】:Top N features that are responsible for the local SHAP value负责本地 SHAP 值的前 N ​​个特征
【发布时间】:2020-10-05 20:00:05
【问题描述】:

我一直在尝试在我的 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)

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

  1. LSTAT、PTRATIO 和 INDUS 有助于将价值推向右侧
  2. RM,Tax,Rad 向另一个方向推进

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

【问题讨论】:

标签: python machine-learning shap


【解决方案1】:

对您的示例有积极贡献的前 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]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-22
    • 2021-04-08
    • 2020-03-30
    • 2022-11-23
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    相关资源
    最近更新 更多