首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SHAP值可以解释,对吗?

SHAP值可以解释,对吗?
EN

Stack Overflow用户
提问于 2019-11-25 23:21:26
回答 2查看 622关注 0票数 0

我在使用SHAP value来解释基于树的模型时遇到了一个问题。

(https://github.com/slundberg/shapsd)

首先,我输入了大约30个特征,我有2个特征,它们之间有很高的正相关性。

在此之后,我训练了XGBoost模型(Python),并查看了2个特征的Shap值,Shap值具有负相关性。

你们能给我解释一下,为什么两个特征之间的输出SHAP值不具有与输入相关相同的相关性吗?我能不能相信SHAP的输出?

=========================

输入之间的相关性: 0.91788

SHAP值之间的相关性:-0.661088

2个特性是

1)省内人口和

2)省内户数。

模型性能

训练AUC: 0.73

测试AUC: 0.71

散点图

Input scatter plot (x: Number of family in province, y: Pupulation in province)

SHAP values output scatter plot (x: Number of family in province, y: Pupulation in province)

EN

回答 2

Stack Overflow用户

发布于 2020-06-16 07:05:26

您可以拥有对模型输出具有相反影响的相关变量。

作为一个例子,让我们以预测死亡风险的情况为例,给定两个特征:“年龄”和“去看医生”。虽然这两个变量是正相关的,但它们的影响是不同的。在所有其他条件保持不变的情况下,较高的“年龄”会导致更高的死亡风险(根据训练模型)。“看医生”的次数越多,死亡的风险就越小。

XGBoost (和SHAP)通过对另一个变量的条件作用来隔离这两个相关变量的影响:例如,在对“年龄”特征进行分裂之后,对“去医生的旅行”特征进行分裂。这里的假设是它们不是完全相关的。

票数 1
EN

Stack Overflow用户

发布于 2021-10-08 02:32:15

XGBoost不是线性模型,即输入特征X和预测Y之间的关系不是线性的。SHAP值构建了y的线性解释模型。因此,非常期望输入特征与其Shap值之间的相关性不匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59035008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档