解释XGB特征重要性和SHAP值的含义

4
针对一个特定的预测问题,我观察到在基于增益生成的XGBoost特征重要性中,某个变量排名很高,但在SHAP输出中排名较低。如何解释这一现象?也就是说,这个变量对于我们的预测问题是否非常重要?
1个回答

8

杂质基础重要性(例如sklearn和xgboost内置程序)总结了树节点对特征的整体使用情况。这自然更加注重高基数特征(更多特征值可以产生更多可能的分裂),而增益可能会受到树结构的影响(节点顺序很重要,即使预测可能相同)。可能存在许多对预测没有影响的分裂或者反之(许多分裂会稀释平均重要性)-请参见https://towardsdatascience.com/interpretable-machine-learning-with-xgboost-9ec80d148d27https://www.actuaries.digital/2019/06/18/analytics-snippet-feature-importance-and-the-shap-approach-to-machine-learning-models/中有各种不匹配的例子。

简单地说:

  • 杂质基础重要性解释了在训练集上泛化特征的使用情况;
  • 排列重要性解释了特征对模型准确度的贡献;
  • SHAP解释了更改特征值会如何影响预测的程度(不一定正确)。

已点赞。您能否更详细地解释为什么高基数特征可能会获得较低的 Shap 值,但通常会被树模型使用(添加有关 XGBoost 计算特征重要性的详细信息可能会很有益)。 - Sergey Bushmanov
XGBoost内置程序有几种可用模式,例如使用权重(使用特征的树分裂数量)或增益(杂质减少),平均值或总值,通常显示非常不同的结果。更多的特征值会产生更多可能的分裂,因此权重更大,而增益会受到树结构的影响,即使预测可能相同(请参见https://towardsdatascience.com/interpretable-machine-learning-with-xgboost-9ec80d148d27和https://www.actuaries.digital/2019/06/18/analytics-snippet-feature-importance-and-the-shap-approach-to-machine-learning-models/以获取各种不匹配示例)。 - dx2-66
谢谢。你愿意用这个知识更新你的回答吗? - Sergey Bushmanov
你能直观地解释一下在shap图中,特征A排名比特征B高是什么意思吗?在你的回答中,如果A排名更高,是否意味着A对最终输出的平均贡献(所有数据点的)比B更高?如果在xgboost的特征重要性方法中,A的增益小于B的增益,你如何解释这个结果? - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接