我一直在尝试使用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')发布于 2021-10-08 13:21:30
我一直在用一个变通方法来进行实例级的解释:
shap_values = (shap_values / sum(shap_values)) * probability其中shap_values是一个列表,len(shap_values) = n_features,每个特征一个Shapley值,probability是0,1中的双精度。
这将缩放您的Shapley值,从它们所在的任何域,到预测的概率。
https://stackoverflow.com/questions/66484992
复制相似问题