1. 定义
一个特征在所有case情况下的贡献得分的平均值。
2. 解释
1.1 线性模型:
f^(x)=β0+β1x1+...+βpxp,j=1,...,p
其中的
xj是特征值,
βj是对应特征
j的权重值。则我们计算预测值
f^(x)特征
j的贡献值
ϕj是:
ϕj(f^)=βjxj−E(βjXj)=βjxj−βjE(Xj)
其中
E(βjXj)是平均影响估计,贡献值是特征影响和平均影响的差值。在我们把一个样本的每个特征的贡献值求和的话是:
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减去他的平均预测值。
1.2 Shapley值
博弈论理论中,Shapley value是一个针对所有机器学习模型的单个预测计算特征贡献值的解决方案。按照最开始的定义来推广到机器学习中,一个特征值的Shapley Value就是在所有可能特征值贡献情况下的赋权重,求和的支出。
ϕj(val)=S⊆{x1,...xp}\{xj}∑p!∣S∣!(p−∣S∣−1)!(val(S∪{xj})−val(S))
S是所有模型中使用特征的子集,x是将要被解释的一个样本的特征值的向量,
valx(S)是在子集S中特征值的预测值。
Shapley Value有四个性质: 有效性 特征贡献值是由预测值和预测值的平均值的差的累加。 对称性 如果在所有的情况中,两个特征值的贡献相同,那么他们的shapley值相等。 空值性(dummy) 如果一个特征不改变预测值,无论在哪种组合中,Shapley值都是0 可加性 两个shapley值可加。
2. 应用
1.3 对于单个特征的近似估计Shapley Value
用一个蒙特卡洛采样的方法来近似产生Shapley Value值。
ϕj^=M1m=1∑M(f^(x+jm)−f^(x−jm))
算法步骤:
- 从
m=1,...,M
- 从x中随机取样本z
- 特征的随机排列o
- 排序x:
xo=(x1,...,xj,...,xp)
- 排序z:
zo=(z1,...,zj,...,zp)
- 构造新的样本
- 有特征j:
x+j=(x1,...,xj−1,xj,zj+1...,zp)
- 无特征j:
x−j=(x1,...,xj−1,zj,zj+1...,zp)
- 计算边缘贡献
ϕjm=f^(x+j)−f^(x−j)
- 计算平均Shapley Value:
ϕj(x)=M1∑m=1Mϕjm
3. 优缺点
3.1 优点
- 比较预测值和平均预测值的办法是一个比较公平分布的方法。
- Shapley Value计算允许对比解释。
- 这个方法是有一个可靠理论支撑的(有效性,对称性,dummy,可加性)。
- 可以把预测解释为一个由特征参与的博弈现象。
3.2 缺点
- 计算时间长。
- Shapley Value会被曲解。
-
- Shapley Value对于稀疏可解释性(包含的特征少)不可用。但是可以用LIME或者SHAP包(也是基于Shapley Value但是可以解决稀疏性问题)来解决
- 可用于非预测模型的状态变化。
- 必须要接触到数据。
- 对于非现实样本会影响其计算值。