机器学习中的 Shapley 值怎么理解?

导语:在集体合作中,如何公平分配奖励?

机器学习中的 Shapley 值怎么理解?

图片来源:https://unsplash.com/photos/TL5Vy1IM-uA 

我第一次听说 Shapley 值是在学习模型可解释性的时候。我知道了 SHAP,它是一个框架,可以更好地理解为什么机器学习模型会那样运行。事实证明,Shapley 值已经存在了一段时间,它们最早起源于 1953 年的博弈论领域,目的是解决以下情况:

一群拥有不同技能的参与者为了集体奖励而相互合作。那么,如何在小组中公平分配奖励?

当一个「旧」概念被应用到另一个领域,如机器学习,关于它是如何获得新的应用是非常有趣的。在机器学习中,参与者是你输入的特征,而集体支出是模型预测。在这种情况中,Shapley 值用于计算每个单独的特征对模型输出的贡献。

如何计算 Shapley 值?大多数时候,你倾向于在文献中看到这个等式: 

机器学习中的 Shapley 值怎么理解?

让我们把它分解一下。在一个联盟游戏(前面描述的场景)中,我们有一组 N 个玩家。我们还有一个函数 v,它给出了这些参与者的任何子集的值,也就是说,S 是 N 的子集,然后 v(S)给出了该子集的值。因此,对于一个联合博弈(N,v),我们可以使用这个方程来计算玩家 i 的贡献,即 Shapley 值。

现在我不知道你会怎么想,但当我第一次遇到这个等式时,我的第一反应如下图:

机器学习中的 Shapley 值怎么理解?

我很难理解为什么它看起来是这样的。我花了一些时间研究之后,终于开始有了一些理解。所以,我们开始吧!

好吧,我们要做的第一件事是重写初始方程:

机器学习中的 Shapley 值怎么理解?

乍一看,这个公式似乎并没有变容易,但请不要着急。很快,我将分解方程的不同部分,以便理解它们,但我们也可以定义一个具体的场景,我们可以使用它来让所有部分都不那么抽象。

假设我们经营一家生产砖块的工厂。我们的一个生产团队由四个人组成:Amanda、Ben、Claire 和 Don(从现在起,我将以他们名字中的第一个字母来称呼他们)。每周他们一起设法生产出 X 块砖。由于我们工厂运转良好,我们有一笔奖金要发给队员们。但是,为了让我们以公平的方式做到这一点,我们需要弄清楚每个人对每周生产 X 数量的砖块贡献了多少。

最困难的是,我们有好几个因素都会影响团队可以生产的砖块数量。其中之一是团队规模,因为团队规模越大,生产的砖块就越多。另一个可能是团队成员之间的合作程度。问题是,我们无法以有意义的方式量化这些影响,但幸运的是,我们可以使用 Shapley 值来回避这个问题。

我们现在已经定义了我们的玩家(A、B、C 和 D)以及他们参与的游戏(生产砖块)。让我们从计算生产的 X 砖中有多少可以归于 Don 开始,即计算 D 的 Shapley 值。如果我们把它与 Shapley 值公式的参数联系起来,我们就得到:

机器学习中的 Shapley 值怎么理解?

所以 D 是我们的球员 i,整个 N 组由所有四个队员 A,B,C 和 D 组成,我们先看一下 Shapley 值公式的这一部分:

机器学习中的 Shapley 值怎么理解?

也就是说,我们需要把我们的团队成员排除在我们现在关注的人之外。然后,我们需要考虑所有可能形成的子集。所以如果我们从组中排除 D,我们就只剩下 {A,B,C}。从这个剩余的组中,我们可以形成以下子集:

机器学习中的 Shapley 值怎么理解?

机器学习中的 Shapley 值怎么理解?

 

 

 

我们总共可以构造出其余团队成员的 8 个不同子集。其中一个子集是空集,即它没有任何成员。现在让我们把注意力转移到这个部分:

机器学习中的 Shapley 值怎么理解?

这是我们 Shapley 值的一个基本概念的应用:在游戏中增加玩家 i 的边际价值。所以对于任何给定的子集,我们要比较它的值和当包括玩家 i 的时候它的值。通过这样做,我们得到了将玩家 i 添加到该子集的边际值。

我们把它和我们的例子联系起来,想看看如果我们把 D 加到 8 个子集中的每一个子集上,每周生产的砖块数量有什么不同。我们可以将这 8 个边缘值直观地表示为:

机器学习中的 Shapley 值怎么理解?

你可以将每种情况都视为我们需要观察的不同场景,以便公平地评估 D 对整个生产的贡献程度。这意味着,我们需要观察如果没有人工作(即空集合)会产生多少砖块,并将其与只有 D 工作时的情况进行比较。我们还需要观察 AB 产生的砖块数量,并将其与 AB 产生的砖块数量以及所有 8 个集合中 D 可以产生的砖块数量进行比较。

好吧,我们现在已经知道我们需要计算 8 个不同的边缘值。Shapley 值方程告诉我们,我们需要把它们加在一起。然而,在我们做这些之前,我们还需要调整每一个边际值,从等式的这一部分可以看出:

机器学习中的 Shapley 值怎么理解?

它计算出除玩家 i 以外的所有剩余团队成员的子集的排列可以有多少个。或者换句话说:如果你有| N |-1 个玩家,你能用它们组成多少个| S |大小的组?然后我们用这个数字除以玩家 i 对所有大小为| S |的群体的边际贡献。

在我们的场景中,| N |-1=3,也就是说,当我们计算 D 的 Shapley 值时,这些是剩下的团队成员数量。在我们的例子中,我们将使用等式的那一部分来计算我们可以形成多少个 0、1、2 和 3 大小的组,因为这些只是我们可以用剩下的成员构造的组大小。因此,例如,如果有| S |=2,那么我们可以构造 3 个不同的大小为 2 的组:AB、BC 和 CA。这意味着我们应该对 8 个边缘值中的每一个应用以下比例因子: 

机器学习中的 Shapley 值怎么理解?

让我们思考一下为什么要这样做。我们想知道 D 对团队总产出的贡献有多大。为了做到这一点,我们计算了他对我们所能形成的团队中每个集合的贡献。通过添加这个比例因子,我们平均了其他团队成员对每个子集大小的影响。这意味着,当我们将 D 加入到一个 0,1,2 和 3 大小的团队中时,我们能够捕获这些团队的平均边际贡献。

好了,我们差不多结束了,我们只有 Shapley 值方程的最后一部分要分解,这一点也应该很容易理解。

机器学习中的 Shapley 值怎么理解?

我们需要应用到所有的边际值,然后才能求和。我们必须把它们和总队员数分开。

我们为什么要这么做?好吧,如果我们看看砖厂的例子,我们已经平均出了其他团队成员对每个子集大小的影响,这样我们就可以算出 D 对 0、1、2 和 3 大小的组的贡献。最后一块拼图是平均小组规模的影响,也就是说,D 贡献了多少与小组规模无关。

我们现在终于可以计算出 D 的 Shapley 值了,我们观察到他对团队中所有不同的子集的贡献是多少。我们还对团队成员组成和团队规模的影响进行了平均,这最终允许我们计算:

机器学习中的 Shapley 值怎么理解?

数学符号更多的是一个图形化的说明,而不是一个数学的说明(这是我在脑海中想象它的方式)

在这里,我们得到了 D 的 Shapley 值。在我们为团队的其他成员完成这项工作之后,我们将知道每个人对每周生产的 X 块砖的贡献,这样我们就可以在所有团队成员中公平地分配奖金。

机器学习中的 Shapley 值怎么理解?

在这一点上,我希望你对 Shapley 的价值观有了更好的理解。很酷的是,我们不需要知道任何关于值函数 v 内部工作原理,只需要观察它为不同子集提供的值,我们可以从参与游戏的玩家中得到这些值。

这才是 Shapley 值背后真正的力量和吸引力。然而,这是有代价的。对于一组参与游戏的 n 个玩家,你将需要分析 2^n 个子集才能计算 Shapley 值。

有一些方法可以使计算更加实际可行,在引言中我提到了 SHAP 框架,它的主要优点是,当将 Shapley 值应用于机器学习时,它能够更有效地计算 Shapley 值。

via:https://towardsdatascience.com/making-sense-of-shapley-values-dc67a8e4c5e8

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习的特征重要性评估是衡量模型每个特征对于预测结果贡献程度的过程。这有助于理解哪些特征对模型的性能影响最大,以及在优化模型时如何选择或调整这些特征。常见的特征重要性评估方法有: 1. **方差阈(Variance Threshold)**:基于特征的方差来判断其对数据变化的敏感度,方差大的特征通常认为更重要。 2. **相关系数(Correlation Coefficient)**:计算特征与目标变量之间的线性相关性,高的正负相关性意味着特征可能有用。 3. **递归特征消除(Recursive Feature Elimination, RFE)**:通过反复训练模型并删除最不重要的特征,直到达到预定的复杂度或性能目标。 4. **随机森林(Random Forest)特征重要性**:随机森林提供了每个特征的重要性得分,基于每个特征被错误分类的次数。 5. **梯度提升树(GBM)特征重要性**:GBM模型的每个决策树都会贡献特征的重要性,这些加权平均就是最终的特征重要性。 6. **Lasso回归和Ridge回归的正则化系数**:正则化项可以提供特征选择的信息,系数接近于0的特征被认为是不重要的。 7. **Permutation Importance**:通过随机打乱特征,观察模型性能的变化,打乱后的下降越大,特征越重要。 8. **SHAP SHapley Additive exPlanations)**:这是一种基于游戏理论的方法,提供每个特征对预测的精确贡献。 评估特征重要性的目的是为了提高模型的解释性和泛化能力,以及在特征工程阶段进行有效的资源分配。了解哪些特征最有价可以帮助我们减少噪声、避免过拟合,并可能引导到更简洁、更高效的模型设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值