跨模型比较 SHAP 值是否有效?

数据挖掘 可解释的ai 形状
2021-09-16 16:27:34

假设我有三个模型:

  • 一个有 100 棵树的随机森林
  • 一个有 1000 棵树的随机森林
  • xgboost 模型。

我可以使用 SHAP 对每个模型的数据集上的特征的重要性进行排名,并比较模型之间的相对重要性。尚不清楚的是我是否可以有意义地比较模型之间的实际数值 SHAP 值。

我对所有型号都使用相同的功能。

1个回答

Shapley 值是在博弈论(来源)的背景下设计的,用于分享游戏中玩家联盟创造的价值。它具有多个属性,包括线性。线性确保如果您要对模型进行平均,则生成的 Shapley 值将是各个模型的 Shapley 值的平均值。在考虑平均模型的意义上,Shapley 值具有可比性。

我认为一般的答案会适得其反。直观地说,因为查看单个 Shapley 值,您无法知道该值是由于联盟的“个人表现”还是“整体表现”。因此,在 ML 的上下文中查看两个值,差异可能既可以通过单个值的不同贡献来解释,也可以通过模型整体性能的差异来解释。所以我会避免在一般情况下这样做。(但我经常这样做 - 以及比较个人预测 - 以检查具有相似整体性能的两个模型是否学到了相同的东西)

总的来说,我建议您使用更合适的标准(如信息标准)来选择模型,然后使用 Shapley 值来解释您选择的模型。不使用 Shapley 值进行某种模型选择。

请注意,我主要讨论的是 Shapley 值,而不是 SHAP,它是一个近似值。您需要谨慎使用 SHAP,因为近似值依赖于您的特征之间缺乏相关性,这在实践中很少发生。