赞
踩
SHAP值基于Shapley值,Shapley值是博弈论中的一个概念。SHAP所做的是量化每个特征对模型所做预测的贡献。
对于所有的特征上图(Age、Gender、Job)可以自由组合共有2^3=8种可能(数学中称为power set即幂集)。SHAP需要为幂集中的每个不同的组合训练一个不同的预测模型,这意味着有8个模型。当然,这些模型在涉及到它们的超参数和训练数据时是完全等价的。唯一改变的是模型中包含的一组特征。
假设上图是已经用相同训练样本训练了8个线性回归的模型。我们可以用这8个模型分别对一个测试样本做预测(x1),最后得出8个预测结果如上图。因为SHAP值所做的是量化每个特征对模型所做预测的贡献,因此需要计算出每个特征的SHAP值。
对于模型2中Age可以算出年龄作为特征的模型的边际贡献是:
M C A g e , { A g e } = P r e d i c t { A g e } ( x 1 ) − P r e d i c t ∅ ( x 1 ) = 40 k $ − 50 k $ = − 10 k $ MC_{
{Age},\{Age\}}=Predict_{\{Age\}}(x1)-Predict_\varnothing(x1) = 40k\$-50k\$ = -10k\$ MCAge,{
Age}=Predict{
Age}(x1)−Predict∅(x1)=40k$−50k$=−10k$
要获得年龄对最终模型效果的影响需要将所以涉及到Age的模型的边际贡献汇总。上图展示了所有涉及年龄的模型(1、2、5、6、8),可以得到年龄的贡献值(SHAP值)如下:
S H A P A g e ( x 1 ) = w 1 ∗ M C A g e , { A g e } ( X 0 ) + w 2 ∗ M C A g e , { A g e , G e n d e r } ( X 0 )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。