将 SHAP 值聚合到特征集是不是有效?

Posted

技术标签:

【中文标题】将 SHAP 值聚合到特征集是不是有效?【英文标题】:Is it Valid to Aggregate SHAP values to Sets of of Features?将 SHAP 值聚合到特征集是否有效? 【发布时间】:2020-03-30 06:35:21 【问题描述】:

SHAP 值似乎是相加的,例如整体特征重要性图只是简单地将每个特征的绝对 SHAP 值相加并进行比较。这使我们能够将 SHAP 用于全局重要性和局部重要性。我们还可以以相同的方式获得特定数据记录子集的特征重要性。

出于同样的原因,获取变量集的聚合 SHAP 值是否有效?例如将“身高”、“体重”和“眼睛颜色”转换为“人类描述”或将“温度”、“湿度”和“气压”转换为“天气”并相应地对它们进行排名。

从理论上讲,我不明白为什么不这样做,但如果遇到任何问题,我会很感激对此的反馈。

【问题讨论】:

【参考方案1】:

来自 Lundberg,包作者:“简短的回答是肯定的,您可以将所有列中的 SHAP 值相加,以获得整组特征的重要性(只要确保您不会像我们那样采用绝对值)跨行获取全局特征重要性时)。

长答案是,当 Shapley 值“相当”地为特征之间的交互效应分配功劳时,他们假设交互效应中的每个特征都应该因交互而获得相同的功劳。这意味着对于高阶交互项,在对特征进行分组之前(和求和)与之后运行 Shapley 值时,您可能会得到稍微不同的结果(因为可以说新组只获得交互饼的一大块,而不是多个块当它有几个功能时)。不过这些差异通常很小,所以我不会费劲,因为这两种方式都是合理的。”

【讨论】:

我可以问一下,在聚合特征重要性时,为什么我们不应该在对每个数据实例(行)求和时采用绝对 SHAP 值?例如,如果身高为基值增加了 +5,而体重为基值贡献了 -5,那么说总体而言,人类描述对预测的贡献为 0,而不是通过添加绝对值对预测的贡献为 10,这真的正确吗? 我想知道同样的事情,并会这样解释。 SHAP 不仅仅是说“这组变量非常有影响力”。 SHAP 指标可直接解释为对目标的影响。在您的情况下,“去掉这组变量,您将获得零差异”。话虽如此,绝对值之和并非没有意义。您可以报告它以表明影响很大,尽管它们实际上在网上取消了。 @JohnCurry 如果模型中不包含特征 C,我对特征 A 和 B 的综合重要性感兴趣怎么办?我要对 A、B 和 (-1)*C 求和吗?然后取平均绝对值?

以上是关于将 SHAP 值聚合到特征集是不是有效?的主要内容,如果未能解决你的问题,请参考以下文章

好书征集第2弹 | 你pick哪本人工智能好书

城市更新「意愿征集」具体怎么做?——本人以实操多个项目的具体经验给大家做分享

议题征集 | 领域驱动设计中国峰会 2017

有奖征集令!一起用编程抗“疫”!

[讲师申请]Strata + Hadoop World 北京2017讲师征集!

用于分类的多个不同大小的特征集