1.SHAP介绍
- SHAP(SHapley Additive exPlanations),是Python开发的一个“模型解释”包,它可以解释任何机器学习模型的输出。
- 所有的特征都被视为“贡献者”。
- 对于每个预测样本,模型都产生一个预测值,SHAP value就是该样本中每个特征所分配到的数值。
- SHAP值从预测中把每一个特征的影响分解出来,可应用于如下场景中:
- 模型认为银行不应该给某人放贷,但是法律上需要银行给出每一笔拒绝放贷的原因。
- 医务人员想要确定对不同的病人而言,分别是哪些因素导致他们有患某种疾病的风险,这样就可以因人而异地采取针对性的卫生干预措施,直接处理这些风险因素。
2.工作原理
假设第i个样本为xi,第i个样本的第j个特征为xij,模型对该样本的预测值为yi,整个模型的基线(通常是所有样本的目标变量的均值),为y_base,那么SHAP value服从以下等式:
其中,f(xij)为当前特征的SHAP值,即第i个样本中的当前特征对最终预测值yi的贡献值,当f(xij)>0,就说明该特征提升了预测值,有正向作用;反之,说明该特征使得预测值降低,有反作用。
传统的feature importance只告诉我们哪个特征重要,但是我们并