Tree Shap value for xgboost

  统计/机器学习 监督式学习 特征选择    浏览次数:6325        分享
1

求大神详解 Tree Shap value的知识点,点亮技能树!


背景:众所周知,xgboost包自带三种看variable importance的方法:增益(看方差减少),权重(看分节点数),覆盖率(看分节点数在通过观测点上的加权)。然而很多数据上这三种算法出来的排序结果差异非常大。所以后来普遍引入了Tree Shap的概念来构造variable importance。


我在网上尝试搜索tree shap,但是并没有非常系统的内容介绍,只搜到这样的一张图


 

sz080212   2019-04-04 14:25



   2个回答 
22

我给SofaSofa投稿了一个教程,欢迎阅览。

用SHAP来理解Xgboost模型中的特征

SofaSofa数据科学社区DS面试题库 DS面经

东布东   2019-05-06 14:31

赞哦 - 麦克信条   2019-05-11 09:35
非常有帮助,感谢大老! - 我是雷哥   2019-08-19 17:13
4

我抛砖引玉下。

SHAP的概念是从Shapley value引申来的。Shapley value是博弈论里的一个概念,大概意思是说N个人共同协作,赚了M元,这M元该如何分配。每个人分配到的“钱”就是每个人的shapley value。

对于一个模型来说,我们需要理解和解释每个特征的作用,差不多就是想知道每个特征赚了多少“钱”。这里“钱”是指每个样本的预测值和整体均值之间的差。

在上面的那个图里,relationship这个特征的SHAP值从-2到2,说明这个特征对预测结果的推动大概在-2到2之间。当Relationship本身数值比较高的时候,通常起到正向作用。

SofaSofa数据科学社区DS面试题库 DS面经

LiShanfei   2019-04-05 06:42



  相关讨论

如果用xgboost模型,那么还需要先做feature selection吗?

怎么利用permutation importance来解释xgboost模型的特征?

在random forest和xgboost这类集成树模型中是如何计算_feature_importance的

XGBoost中get_score中的cover是什么意思

对于xgboost,还有必要做很多特征工程吗?

xgboost中的决策树的复杂度是怎么定义的?

xgboost里的每棵树是不是等权重的?

GBDT和XGBoost在叶子节点权重计算上有什么不同?

stack多个xgboost效果并不理想

xgboost怎么调参?

  随便看看

怎么把pandas dataframe中一列英文文本全部转成小写?

为什么样本方差是除以n-1

怎么直观理解ROC AUC的概率统计意义?

为什么LR要用Sigmoid函数?

条件概率证明P(a,b|c) > P(a,b)