Introduction
在这一章节首先我们介绍什么是shapley value(夏普利值)和什么是SHAP。接下来先从原理上解释shapley的数学原理。
for example
假设以下场景:你训练了一个机器学习模型来预测公寓价格。对于某个公寓,它预测€300,000,你需要解释这个预测。这套公寓面积有50平方米,位于2楼,附近有一个公园,禁止养猫:
所有公寓的平均预测是€31万套。与平均预测相比,每个特征值对预测的贡献有多大?
对于线性回归模型,答案很简单。每个特征的效果是特征的权重乘以特征值。这仅仅是因为模型的线性。对于更复杂的模型,我们需要不同的解决方案。举个例子,LIME方法建议使用局部代理模型来评估影响。另一个解决方案来自合作博弈理论:Shapley值,由Shapley (1953)创造是一种根据玩家对总奖金的贡献向玩家分配奖金的方法。玩家在联盟中合作,并从这种合作中获得一定的利润。
玩家?游戏?支付?与机器学习预测和可解释性有什么联系?“游戏”是数据集的单个实例的预测任务。“增益”是该实例的实际预测减去所有实例的平均预测。“玩家”是协作获得收益的实例的特征值(=预测某个值)。在我们的公寓示例中,特征值park-nearby, cat-banned, area-50和floor-2nd齐心协力实现了€30万的预言。我们的目标是解释实际预测(€300,000)和平均预测(€310,000)之间的差异:一个-€10,000的差异。
答案可能是park-nearby贡献了€3万预测值增益;area-50贡献€1万预测增益;floor-2nd贡献了€0;cat-banned贡献了€50,000英镑增益。各项增益值累加起来是-€10,000,最终预测减去平均预测公寓价格。
How do we calculate the Shapley value for one feature?
Shapley值是特征值在所有可能的联盟中的平均边际贡献。
在下图中,我们评估了将 cat-banned 特征值和 park-nearby 和 area-50 联合起来时的贡献。根据以上选定的特征组合,我们通过从数据中随机抽取另一间公寓并将其值用于楼层特征来模拟只有 park-nearby、cat-banned 和 area-50 在一个特征组合中中。值 floor-2nd 被随机抽取的 floor-1st 取代。然后我们用这个组合预测公寓的价格 (€310,000)。在第二步中,我们从联合特征中移除 cat-banned,方法是将其替换为随机抽取的公寓中的 cat allowed/banned 特征的随机值。在这个例子中,它是猫允许的,但它可能又被猫禁止了。我们预测 park-nearby 和 area-50 联盟的公寓价格(320,000 欧元)。 cat-banned 的贡献是 €310,000 - €320,000 = -€10,000。该估计值取决于随机抽选到的公寓的值,该公寓充当了“是否禁止养猫”和“楼层特征”值的“捐赠者。如果我们重复这个采样步骤并对贡献进行平均,我们将得到更好的估计。

我们对所有可能的特征组合重复这个计算。 Shapley值是对所有可能的特征组合的所有边际贡献的平均值。 计算时间随特征个数呈指数增长。 保持计算时间可管理的一个解决方案是只计算可能联盟的几个样本的贡献。
下面显示了确定"cat-banned"的Shapley值所需的所有特征值组合。 第一行显示了没有任何特征值的组合。 第二、第三和第四行显示了随着特征组合规模的增加而不同的特征组合,用“|”分隔。 总而言之,以下特征组合是可能的:
- no feature values
- park-nearby
- area-50
- floor-2nd
- park-nearby + area-50
- park-nearby + floor-2nd
- area-50 + floor-2nd
- park-nearby + area-50 + floor-2nd
对于每一个特征组合,计算有和没有“cat-banned”的特征值预测公寓价格,并取其差值得到边际贡献。 Shapley值是边际贡献的(加权)平均值。 我们用公寓数据集中的随机特征值替换不在联盟中的特征的特征值,从而从机器学习模型中得到预测。
The Shapley value in detail
我们感兴趣的是每个特征如何影响数据点的预测。在线性模型中,很容易计算个体效应。下面是一个数据实例的线性模型预测:
f
^
(
x
)
=
β
0
+
β
1
x
1
+
⋯
+
β
p
x
p
\hat f(x) = \beta_0 + \beta_1x_1+\dots+\beta_px_p
f^(x)=β0+β1x1+⋯+βpxp
其中x是我们要计算其贡献的实例。每个
x
j
x_j
xj是一个特征值,
j
=
1
,
…
,
p
j = 1,\dots ,p
j=1,…,p,
β
j
β_j
βj是对应于特征j的权重。
模型
f
^
(
x
)
\hat f(x)
f^(x)第j个特征的贡献
ϕ
j
\phi_j
ϕj对预测是:
ϕ
j
(
f
^
)
=
β
j
x
j
−
E
(
β
j
x
j
)
=
β
j
x
j
−
β
j
E
(
x
j
)
\phi_j(\hat f)=\beta_jx_j-E(\beta_jx_j)=\beta_jx_j-\beta_jE(x_j)
ϕj(f^)=βjxj−E(βjxj)=βjxj−βjE(xj)
其中,
E
(
β
j
x
j
)
E(\beta_jx_j)
E(βjxj)是特征j的平均效应估计值,贡献是特征效应减去平均效应之间的差。Nice!现在我们知道了每个特征对预测的贡献。如果我们将一个实例的所有特性贡献相加,结果如下:
∑
j
=
1
p
ϕ
j
(
f
^
)
=
∑
j
=
1
p
(
β
j
x
j
−
E
(
β
j
x
j
)
)
=
(
β
0
+
∑
j
=
1
p
β
j
x
j
)
−
(
β
0
+
∑
j
=
1
p
E
(
β
j
x
j
)
)
=
f
^
(
x
)
−
E
(
f
(
x
)
)
\begin{aligned} \sum_{j=1}^{p}\phi_j(\hat f) & =\sum_{j=1}^p(\beta_jx_j-E(\beta_jx_j))\\ &=(\beta_0+\sum_{j=1}^p\beta_jx_j)-(\beta_0+\sum_{j=1}^{p}E(\beta_jx_j))\\ &=\hat f(x)-E(f(x)) \end{aligned}
j=1∑pϕj(f^)=j=1∑p(βjxj−E(βjxj))=(β0+j=1∑pβjxj)−(β0+j=1∑pE(βjxj))=f^(x)−E(f(x))
这是数据点x的预测值减去平均预测值。特征贡献可以是负的。
我们能为任何类型的模型做同样的事情吗?这将是一个与模型无关的工具。由于我们在其他模型类型中通常没有类似的权重,因此我们需要一个不同的解决方案。
帮助来自意想不到的地方:合作博弈论。Shapley值是用于计算任何机器学习模型的单个预测的特征贡献的解决方案。
The Shapley Value
Shapley值是通过值函数
v
a
l
val
val定义再集合S中玩家的价值。
特征值的Shapley值是其对支出的贡献,在所有可能的特征值组合上进行加权和求和:
ϕ
j
(
v
a
l
)
=
∑
S
⊆
{
1
,
…
,
p
}
/
{
j
}
∣
S
∣
!
(
p
−
∣
S
∣
−
1
)
!
p
!
(
v
a
l
(
S
∪
{
j
}
)
−
v
a
l
(
S
)
)
\phi_j(val)=\sum_{S\subseteq \{1,\dots,p\}/\{j\}}\frac{|S|!(p-|S|-1)!}{p!}(val(S\cup\{j\})-val(S))
ϕj(val)=S⊆{1,…,p}/{j}∑p!∣S∣!(p−∣S∣−1)!(val(S∪{j})−val(S))
其中S是模型中包含的特征的子集,x是要解释的实例的特征值的向量,p是特征的数量。
v
a
l
x
(
S
)
val_x(S)
valx(S)是对集合S中的特征值的预测,这些特征值相对于不包含在集合S中的特征被边缘化:
v
a
l
x
(
S
)
=
∫
f
^
(
x
1
,
…
,
x
p
)
d
P
x
∉
S
−
E
X
(
f
^
(
X
)
)
val_x(S)=\int \hat f(x_1,\dots,x_p)d\mathbb{P}_{x\notin S}-E_X(\hat f(X))
valx(S)=∫f^(x1,…,xp)dPx∈/S−EX(f^(X))
实际上,您对未包含的每个特征执行多次积分。具体示例:机器学习模型使用4个特征
x
1
、
x
2
、
x
3
x_1、x_2、x_3
x1、x2、x3和
x
4
x_4
x4,我们评估由特征值
x
1
x_1
x1和
x
3
x_3
x3组成的联合的预测:
v
a
l
x
(
S
)
=
v
a
l
x
(
1
,
3
)
=
∫
R
∫
R
f
^
(
x
1
,
X
2
,
x
3
,
X
4
)
d
P
x
2
,
x
4
−
E
X
(
f
^
(
X
)
)
val_x(S)=val_x({1,3})=\int_\mathbb {R}\int_\mathbb{R}\hat f(x_1,X_2,x_3,X_4)d\mathbb{P}_{x_2,x_4}-E_X(\hat f(X))
valx(S)=valx(1,3)=∫R∫Rf^(x1,X2,x3,X4)dPx2,x4−EX(f^(X))
这看起来类似于线性模型中的特征贡献!
不要被"value”这个词的许多用法所迷惑:特征值是一个特性和实例的数值或分类值;Shapley值是对预测的特征贡献;价值函数是玩家联盟的支付函数(特征值)。
Shapley值是满足效率Efficiency、对称性Symmetry、虚拟性Dummy和可加性Additive属性的唯一归属方法,这些属性一起可以被认为是公平支付的定义。
Efficiency特征贡献必须加起来等于x和平均值的预测差。
∑
j
=
1
p
ϕ
j
=
f
^
(
x
)
−
E
X
(
f
^
(
X
)
)
\sum_{j=1}^{p}\phi_j=\hat f(x)-E_X(\hat f(X))
j=1∑pϕj=f^(x)−EX(f^(X))
Symmetry如果两个特征值
j
j
j和
k
k
k对所有可能的联合的贡献相等,则它们的贡献应该相同。如果
v
a
l
(
S
∪
{
j
}
)
=
v
a
l
(
S
∪
{
k
}
)
val(S\cup \{j\})=val(S\cup \{k\})
val(S∪{j})=val(S∪{k})
对于所有的
S
⊆
{
1
,
…
,
p
}
\
{
j
,
k
}
S\subseteq \{1,\dots,p\} \backslash\{j,k\}
S⊆{1,…,p}\{j,k}
那么就有:
ϕ
j
=
ϕ
k
\phi_j=\phi_k
ϕj=ϕk
Dummy不改变预测值的要素
j
j
j(无论它被添加到哪个特征组合)的Shapley值应该为0,如果
v
a
l
(
S
∪
{
j
}
)
=
v
a
l
(
s
)
val(S\cup \{j\})=val(s)
val(S∪{j})=val(s)
对于所有
S
⊆
{
1
,
…
,
p
}
S\subseteq \{1,\dots ,p\}
S⊆{1,…,p},然后
ϕ
j
=
0
\phi_j=0
ϕj=0
Additivity对于具有组合支付值
v
a
l
+
v
a
l
+
val+val^+
val+val+的游戏,相应的Shapley值如下:
ϕ
j
+
ϕ
j
+
\phi_j+\phi_j^+
ϕj+ϕj+
假设您训练了一个随机森林,这意味着预测是许多决策树的平均值。加法属性保证对于一个特征值,您可以单独计算每棵树的Shapley值,对它们进行平均,并获得随机森林的特征值的Shapley值。
Intuition
理解Shapley值的直观方法如下例证所示:特征值以随机顺序进入一个房间。房间里的所有特征值都参与了游戏。特征值的Shapley值是当特征值加入时,已经在房间中的联盟接收到的预测的平均变化。
Estimate The Shapley Value
为了计算精确的Shapley值,必须评估具有和不具有第j个特征的所有可能的特征值组合(集合)。对于许超过一个特征的集合,这个问题的精确解决方案变得很成问题,因为随着更多特征的添加,可能的联合的数量呈指数增长。Strumbelj等人(2014年)64提出了一种蒙特卡罗抽样的近似方法:
ϕ
^
j
=
1
M
∑
m
=
1
M
(
f
^
(
x
+
j
m
)
−
f
^
(
x
−
j
m
)
)
\hat \phi_j=\frac{1}{M}\sum_{m=1}^{M}(\hat f(x_{+j}^m)-\hat f(x_{-j}^m))
ϕ^j=M1m=1∑M(f^(x+jm)−f^(x−jm))
其中
f
^
(
x
+
j
m
\hat f(x_{+j}^m
f^(x+jm是对x的预测,但是随机数量的特征值被来自随机数据点z的特征值代替,除了特征j的相应值。
x
−
j
m
x_{-j}^m
x−jm基本上和
x
+
j
m
x_{+j}^m
x+jm相等,但是
x
j
m
x_{j}^m
xjm也取自采样的z。这M个新实例中的每一个都是由两个实例组合而成的“弗兰肯斯坦的怪物”。请注意,在下面的算法中,要素的顺序实际上并没有改变-当传递给预测函数时,每个要素都保持在相同的矢量位置。顺序在这里只是作为一个“窍门”:通过给特性一个新的顺序,我们得到一个随机的机制,帮助我们把“Frankenstein’s Monster”组合在一起。对于出现在特征左侧的特征
x
j
x_j
xj,我们从原始观测值中取值,对于右边的特征,我们从随机实例中取值。
Approximate Shapley estimation for single feature value:
输出:第j个特征值的shapley值:
要求:迭代次数
M
M
M、感兴趣的实例
x
x
x、特征索引 j、数据矩阵
X
X
X、机器学习模型
f
f
f
对于所有m=1,...,M
.从数据X中随机抽取数据样本z。
.选择特征值的随机排列。
.排列数据样本实例x:
x
o
=
(
x
(
1
)
,
…
,
x
(
j
)
,
…
,
x
(
p
)
)
x_o=(x_{(1)},\dots ,x_{(j)},\dots ,x_{(p)})
xo=(x(1),…,x(j),…,x(p))
.排列数据样本实例z:
z
o
=
(
z
(
1
)
,
…
,
z
(
j
)
,
…
,
z
(
p
)
)
z_o=(z_{(1)},\dots ,z_{(j)},\dots ,z_{(p)})
zo=(z(1),…,z(j),…,z(p))
.构造两个新的数据样本实例
有特征j的情况:
x
+
j
=
(
x
(
1
)
,
…
,
x
(
j
−
1
)
,
x
(
j
)
,
z
(
j
+
1
)
,
…
,
z
(
p
)
)
x_{+j}=(x_{(1)},\dots ,x_{(j-1)},x_{(j)},z_{(j+1)},\dots ,z_{(p)})
x+j=(x(1),…,x(j−1),x(j),z(j+1),…,z(p))
没有特征j的情况:
x
−
j
=
(
x
(
1
)
,
…
,
x
(
j
−
1
)
,
z
(
j
)
,
z
(
j
+
1
)
,
…
,
z
(
p
)
)
x_{-j}=(x_{(1)},\dots ,x_{(j-1)},z_{(j)},z_{(j+1)},\dots ,z_{(p)})
x−j=(x(1),…,x(j−1),z(j),z(j+1),…,z(p))
.计算边际效应:
ϕ
j
m
=
f
^
(
x
+
j
m
)
−
f
^
(
x
−
j
m
)
\phi_j^m=\hat f(x_{+j}^m)-\hat f(x_{-j}^m)
ϕjm=f^(x+jm)−f^(x−jm)
计算夏普利shapley值的平均值:
ϕ
j
(
x
)
=
1
M
∑
m
=
1
M
ϕ
j
m
\phi_j(x)=\frac{1}{M}\sum_{m=1}^{M}\phi_j^m
ϕj(x)=M1∑m=1Mϕjm
SHAP
Lundberg和Lee (2017)69的SHAP(SHapley Additive exPlanations)是一种解释个体预测的方法。SHAP基于博弈理论上的最优沙普利值。SHAP的作者提出了KernelSHAP,这是一种受局部代理模型启发的基于核的Shapley值估计方法。他们提出了TreeSHAP,一种基于树的模型的有效估计方法。第二,SHAP带来了许多基于Shapley值集合的全球解释方法。本章解释了新的估算方法和全局解释方法。
definition
SHAP的目标是通过计算每个特征对预测的贡献来解释实例x的预测。SHAP解释方法从联盟博弈论中计算沙普利值。数据实例的特征值充当联盟中的参与者。Shapley值告诉我们如何在特性之间公平地分配“支出”(=预测)。参与者可以是单个特征值,例如表格数据。一个玩家也可以是一组特征值。例如,为了解释一幅图像,可以将像素分组为超像素,并在它们之间分配预测。SHAP带来的一项创新是,Shapley值解释被表示为一种附加特征归因方法,一种线性模型。这种观点将LIME和沙普利的价值观联系在一起。SHAP对此的解释是:
g
(
z
′
)
=
ϕ
0
+
∑
j
=
1
M
ϕ
j
z
j
′
g(z^\prime)=\phi_0+\sum_{j=1}^{M}\phi_jz_j^\prime
g(z′)=ϕ0+j=1∑Mϕjzj′
其中
g
g
g是解释模型,
z
′
∈
{
0
,
1
}
M
z^\prime \in \{0,1\}^M
z′∈{0,1}M是特征联合向量,M表示特征的最大尺寸,而且
ϕ
j
∈
R
\phi_j\in \mathbb{R}
ϕj∈R表示特征j的一种特征属性值(可以理解为shapley value 值)。我所谓的“联合向量”在SHAP的论文中被称为“简化特征”。我认为之所以选择这个名称,是因为例如对于图像数据,图像不是在像素级别上表示的,而是聚合到超像素。我相信把z看作描述联合是有帮助的:在联合向量中,1表示相应的特征值“存在”,0表示它“不存在”。为了计算Shapley值,我们模拟只有一些特征值在局中(“存在”),而一些没有在局中(“不存在”)。其中一个代表就是线性模型中计算
ϕ
′
s
\phi \prime s
ϕ′s的值,对于感兴趣的实例x,联合向量
x
′
x\prime
x′是全部都在局内的玩家,即所有特征值都“存在”。该公式简化为:
g
(
x
′
)
=
ϕ
0
+
∑
j
=
1
M
ϕ
j
g(x\prime)=\phi_0+\sum_{j=1}^{M}\phi_j
g(x′)=ϕ0+j=1∑Mϕj
Shapley值是满足效率、对称性、虚拟性和可加性的唯一解。SHAP也满足这些,因为它计算沙普利值。在SHAP的论文中,你会发现SHAP地产和沙普利地产之间的差异。SHAP描述了以下三个理想的特性:
1) Local accuracy
f
^
(
x
)
=
g
(
x
′
)
=
ϕ
0
+
∑
j
=
1
M
ϕ
j
x
j
′
\hat f(x) = g(x\prime) = \phi_0+\sum_{j=1}^{M}\phi_jx_j^{\prime}
f^(x)=g(x′)=ϕ0+j=1∑Mϕjxj′
如果你定义了
ϕ
0
=
E
X
(
f
^
(
x
)
)
\phi_0=E_X(\hat f(x))
ϕ0=EX(f^(x))并设置了所有的
x
j
′
x_j^{\prime}
xj′等于1,这就是shapley值的属性。进使用不同的姓名和特征组合公式可写为:
f
^
(
x
)
=
ϕ
0
+
∑
j
=
1
M
ϕ
j
x
j
′
=
E
X
(
f
^
(
X
)
)
+
∑
j
=
1
M
ϕ
j
\hat f(x) = \phi_0 + \sum_{j=1}^{M}\phi_j x_j^{\prime}=E_X(\hat f(X))+\sum_{j=1}^{M}\phi_j
f^(x)=ϕ0+j=1∑Mϕjxj′=EX(f^(X))+j=1∑Mϕj
2) Missingness
x
j
′
=
0
⇒
ϕ
j
=
0
x_j^{\prime}=0\Rightarrow\phi_j=0
xj′=0⇒ϕj=0
缺失性表示缺失特征的属性为零。注意到
x
j
′
x_j^{\prime}
xj′指的是值为0表示缺少特征值的特征向量组合。在联合符号中,所有特征值
x
j
′
x_j^{\prime}
xj′ 要解释的实例的
x
j
′
x_j^{\prime}
xj′应该是’ 1 '。0的存在意味着感兴趣的实例缺少特征值。这个性质不属于“正常”Shapley值的性质。那么,为什么SHAP需要它呢?伦德伯格称之为“小簿记财产”。理论上,缺失要素可能具有任意的Shapley值,而不会损害局部精度属性,因为它会乘以
x
j
′
=
0
x_j^{\prime}=0
xj′=0。Missingness属性强制缺失的要素获得Shapley值0。实际上,这仅与恒定的特征相关。
3)Consistency
设
f
^
x
(
z
′
)
=
f
^
(
h
x
(
z
′
)
)
\hat f_x(z^\prime)=\hat f(h_x(z^\prime))
f^x(z′)=f^(hx(z′))而
z
−
j
′
z_{-j}^\prime
z−j′表示
z
−
j
′
=
0
z_{-j}^\prime=0
z−j′=0。对于任意两个模型
f
f
f和
f
′
f^\prime
f′来说满足:
f
^
x
′
(
z
′
)
−
f
^
x
′
(
z
−
j
′
)
≥
f
^
x
(
z
′
)
−
f
^
x
(
z
−
j
′
)
\hat f_x^\prime(z^\prime)-\hat f_x^\prime(z_{-j}^\prime)\ge \hat f_x(z^\prime)-\hat f_x(z_{-j}^\prime)
f^x′(z′)−f^x′(z−j′)≥f^x(z′)−f^x(z−j′)
对于所有输入
z
′
∈
{
0
,
1
}
M
z^\prime\in\{0,1\}^M
z′∈{0,1}M来说,那么:
ϕ
j
(
f
^
′
,
x
)
≥
ϕ
j
(
f
^
,
x
)
\phi_j(\hat f^\prime,x)\ge\phi_j(\hat f,x)
ϕj(f^′,x)≥ϕj(f^,x)
一致性属性表示,如果模型发生变化,使得某个特征值的边际贡献增加或保持不变(不考虑其他特征),则Shapley值也增加或保持不变。如Lundberg和Lee的附录中所述,从一致性出发,Shapley性质线性、伪和对称随之而来。
Kernel SHAP
KernelSHAP为实例x估计每个特征值对预测的贡献。KernelSHAP由五个步骤组成:
- 采样特征 z k ′ ∈ { 0 , 1 } M , k ∈ { 1 , … , K } z_k^\prime\in\{0,1\}^M,\quad\quad k\in\{1,\dots,K\} zk′∈{0,1}M,k∈{1,…,K},(1:特征属性值在特征组合中,0表示特征缺席)。
- 获得每个 z k ′ z_k^\prime zk′的预测通过首先转换 z k ′ z_k^\prime zk′’到原始特征空间,然后应用模型 f ^ : f ^ ( h x ( z k ′ ) ) \hat f:\hat f(h_x(z_k^\prime)) f^:f^(hx(zk′))
- 利用SHAP核计算每个 z k ′ z_k^\prime zk′的权重
- 拟合加权线性模型。
- 返回Shapley值 ϕ k \phi_k ϕk,线性模型的系数。
我们可以通过重复抛硬币来创建随机特征组合,直到我们得到一系列0和1。例如,向量(1,0,1,0)意味着我们有第一个和第三个特征的组合。K个采样联盟成为回归模型的数据集。回归模型的目标是对联盟的预测。(“坚持住!,“你说。“该模型尚未根据这些二元联盟数据进行训练,因此无法对其进行预测。”)为了从特征值的组合得到有效的数据实例,我们需要一个函数 h x ( z ′ ) = z h_x(z^\prime)=z hx(z′)=z,其中 h x : { 0 , 1 } M → R p h_x:\{0,1\}^M\rightarrow\mathbb{R}^p hx:{0,1}M→Rp。该函数 h x h_x hx将1映射到我们想要解释的实例x中的相应值。对于表格数据,它将0映射到我们从数据中采样的另一个实例的值。这意味着我们把“特征值不存在”等同于“特征值被来自数据的随机特征值代替”。对于表格数据,下图显示了从特征组合到特征值的映射:

h
x
h_x
hx用于表格数据处理功能
X
j
X_j
Xj和
x
−
J
x_{-J}
x−J(其他特性)是独立的,并在边际分布上积分:
f
^
(
h
X
(
z
′
)
)
=
E
X
−
j
[
f
^
(
x
)
]
\hat f(h_X(z^\prime))=E_{X_{-j}}[\hat f(x)]
f^(hX(z′))=EX−j[f^(x)]
从边缘分布抽样意味着忽略存在和不存在特征之间的依赖结构。因此,KernelSHAP与所有基于排列的解释方法一样,都存在同样的问题。这种估计对不太可能发生的情况给予了太多的重视。结果可能变得不可靠。但有必要从边际分布中抽样。解决方案是从条件分布中取样,这改变了价值函数,因此沙普利值就是这个博弈的解。因此,Shapley值有不同的解释:例如,当使用条件采样时,模型可能根本没有使用的要素可能具有非零的Shapley值。对于边缘游戏,这个特征值将总是得到Shapley值0,因为否则它将违反虚拟轴。
与LIME的最大区别是回归模型中实例的权重。LIME根据实例与原始实例的接近程度对实例进行加权。联合向量中的0越多,LIME中的权重就越小。SHAP根据联合将在Shapley值估计中获得的权重对采样实例进行加权。小联盟(几个1)和大联盟(即许多1)得到最大的权重。其背后的直觉是:如果我们能孤立地研究它们的影响,我们对个体特征了解最多。如果联合由单个特征组成,我们可以了解该特征对预测的孤立主要影响。如果一个特征组合由除了一个特征之外的所有特征组成,我们可以了解这个特征的总效应(主效应加上特征相互作用)。如果一个特征组合由一半的特征组成,我们对单个特征的贡献了解很少,因为有许多可能的特征组合具有一半的特征。为了实现符合沙普利的加权,伦德伯格等人提出了SHAP核:
π
x
(
z
′
)
=
M
−
1
(
M
/
∣
z
′
∣
)
∣
z
′
∣
(
M
−
∣
z
′
∣
)
\pi_x(z^\prime)=\frac{M-1}{(M/|z^\prime|)|z^\prime|(M-|z^\prime|)}
πx(z′)=(M/∣z′∣)∣z′∣(M−∣z′∣)M−1
其中,M是最大规模的特征组合实例
∣
z
′
∣
|z^\prime|
∣z′∣中当前特征的数量。Lundberg和Lee表明,用这种核权重进行线性回归会产生Shapley值。如果您将SHAP核与LIME一起用于联盟数据,LIME还会估计Shapley值!
我们可以更聪明地对联盟进行抽样:最小和最大的联盟占据了大部分权重。通过使用一些采样预算K来包括这些高权重联盟而不是盲目采样,我们得到了更好的Shapley值估计。我们从具有1和M-1个特征的所有可能的联盟开始,总共有2乘以M个联盟。当我们有足够的预算时(目前的预算是K - 2M),我们可以包括具有2个特性和M-2个特性的联盟,等等。从剩余的联盟规模中,我们用重新调整的权重进行抽样。
我们有数据、目标和权重;构建加权线性回归模型所需的一切:
g
(
z
′
)
=
ϕ
0
+
∑
j
=
1
M
ϕ
j
z
j
′
g(z^\prime)=\phi_0+\sum_{j=1}^M\phi_jz_j^\prime
g(z′)=ϕ0+j=1∑Mϕjzj′
我们通过优化下面的损失函数L来训练线性模型g:
L
(
f
^
,
g
,
π
x
)
=
∑
z
′
∈
Z
[
f
^
(
h
x
(
z
′
)
)
−
g
(
z
′
)
]
2
π
x
(
z
′
)
L(\hat f,g,\pi_x)=\sum_{z\prime \in Z}[\hat f(h_x(z^\prime))-g(z^\prime)]^2\pi_x(z^\prime)
L(f^,g,πx)=z′∈Z∑[f^(hx(z′))−g(z′)]2πx(z′)
其中Z是训练数据。这是我们通常为线性模型优化的老掉牙的误差平方和。模型的估计系数
ϕ
j
\phi_j
ϕj的是沙普利值。
由于我们处于线性回归设置中,我们也可以利用标准工具进行回归。例如,我们可以添加正则化项,使模型变得稀疏。如果我们给损失L加上一个L1罚函数,我们就能创造出稀疏的解释。(我不太确定得到的系数是否仍然是有效的Shapley值。)
Tree SHAP
Lundberg等人(2018)70提出了TreeSHAP,这是SHAP的一种变体,用于基于树的机器学习模型,如决策树、随机森林和梯度增强树。TreeSHAP是作为KernelSHAP的一种快速的、特定于模型的替代方法而引入的,但事实证明它会产生不直观的特征属性。