我正在尝试彻底掌握 shapley 值。
据我所知,它是给定特征的平均(边际)贡献,即我们采用所有特征 (x1), x(2),.., (x1,x2), (x2,x3), (x1,x2,x3) ...
的所有组合,然后查看特征 j
的集合预测之间的平均差异存在和不存在的地方。
例如,我们有三个特征 x1,x2,x3
和一个机器学习函数 f
。组合(集合/联盟)是
S={
Ø
x1
x2
x3
(x1,x2)
(x1,x3)
(x2,x3)
(x1,x2,x3)
}
如果我想计算 x1
的沙普利值,我会计算
#prediction with the feature x1
T1 = f(x2,x1)
T2 = f(x3,x1)
T3 = f(x2,x3,x1)
#prediction w/o the feature x1
T11 = f(x2)
T22 = f(x1)
T3 == f(x2,x3)
shapley_x1 = ((T1-T11)+(T2-T22)+(T3-T3))/3
即 x1
的平均贡献,比方说 shapeley_x1=-10
。就平均预测而言,特征 x1
存在时平均具有 -10 的影响。
根据this我们不能说shapley_x1
是去掉值时预测的差异,而是特征x1
对不同联盟中预测的平均贡献.
我有点想知道这里有什么区别 - 如果我根据缺失/不缺失的特征计算平均值,那为什么不是预期的预测差异?我知道它只是与其他特征一起计算,但我仍然很难看出我们如何不能说,一个给定的特征如何(通常)对我们的(平均)预测做出贡献,例如它是否有很大的负面影响,很大的积极影响等。 ?