【问题标题】:How to convert logit shap values to probability如何将logit shap值转换为概率
【发布时间】:2021-03-05 00:24:19
【问题描述】:

我一直在尝试使用 logit 链接将 shap 值转换为数据集中所有特征的概率。 model_output ='probability' 参数不适用于我的 catboost 模型。我想转换每个特征的形状值,这样当你对它们求和时,它们等于力图上显示的概率。我使用了一个预先编写的函数将对数赔率转换为概率,但总和在力图中不等于相同。有什么建议吗?

explainer = shap.TreeExplainer(catboost)
shap_values = explainer.shap_values(df_X_test)
shap.force_plot(explainer.expected_value, shap_values[0,:], df_X_test.iloc[0,:],link='logit')

【问题讨论】:

    标签: python catboost shap


    【解决方案1】:

    我一直在使用实例级解释的解决方法:

    shap_values = (shap_values / sum(shap_values)) * probability
    

    shap_values 是一个列表,len(shap_values) = n_features 是每个特征一个 Shapley 值,probability 是 [0, 1] 中的双精度值。

    这会将您的 Shapley 值从它们所在的任何域缩放到预测概率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-18
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      相关资源
      最近更新 更多