SHAP的主要思想是计算特征对模型输出的边际贡献,然后再从全局和局部两个层面对模型进行解释。其原理来自于一种合作博弈论方法,属于一种模型事后解释方法。SHAP构建的是一个加性的解释模型,所有特征都被视为贡献者。
对于每一个预测样本,模型都产生一个预测值,SHAP value即为该样本中每个特征所分配到的数值。(对于每一个样本而言,每个特征被视为一个玩家,模型的预测被视为游戏的收益,shapley值计算每个特征对预测结果的平均贡献)
SHAP的基本思想是:计算一个特征加入到模型时的边际贡献,然后考虑该特征在所有的特征序列的情况下不同的边际贡献,取均值,即为该特征的SHAP baseline value。
具体而言,对于一个给定的特征,SHAP值是通过考虑在所有可能的特征子集中该特征对模型预测的平均改变(加权平均)来计算的。
上面公式中由三个阶乘组成的系数代表的是不同联盟出现的次数,即不同联盟对应的权重。
举例:考虑A、B、C组成的所有排列可以为ABC、ACB、BAC、BCA、CAB、CBA,共( 3!=6 )种。比如对于A所对应的联盟,我们可以将各个排列中A之前的乘客作为联盟,而丢弃A之后的乘客(当然也可以相反),这样获得的联盟为:空集 、空集、{B}、{B,C}、{C}、{C,B},这里可以直接根据各个联盟出现的次数作为对应的权重(空集的权重为2,B为1,C为1,BC为2)。