SHAP可视化解释机器学习模型简介

注:本文主要参考自https://blog.youkuaiyun.com/chaishen10000/article/details/128319250。

1 引子 

图1 SHAP概念图

通常情况下,我们都会把机器学习模型看作一个黑盒。比如某个模型要进行一些预测任务,首先对模型输入一些已知条件(Age=65,Sex=F,BP=180,BMI=40),然后模型根据输入进行训练,最终训练完的模型可以对该条件输出预测结果(Output=0.4)。

我们所能作的只是通过输入数据,然后得到最终的结果,至于模型内部是怎么计算的,输入的已知条件(Age=65,Sex=F,BP=180,BMI=40)是怎么对预测结果(Output=0.4)影响的,都没法知道。

而SHAP模型就可以让我们知道这些已知条件到底对最终预测结果起到哪些影响(这种影响可能是正向的,也可能是负向的)。当然,除了SHAP模型,其实也有其他方法可以进行特征重要性的计算,如下表所示。我们可以根据各种方法的优点选择适合的进行特征重要性计算。

表1 常用的模型解释方法

方法 原理 优点 缺点 适用范围

Mean

Decrease

Inourity

一个特征的重要性等于特征形成的分支节点的不纯度下降之和 1.计算效率高,对大规模数据有利 计算整体特征重要性 计算整体特征重要性 RandomForest.XGBoost.GBM默认的特征重要性计算方法

Permutation

Inportance

一个特征的重要性等于把这个特征变成随机数之后,整个模型因此造成的精确性下降程度。

1.面对类别很多的分类变量不会产生明显的bias

2.比Drop Column Importance计算效率高

1.会受到多重共线性的影响

2.比Mean Drease Impurity计算效率低

3.不能处理有缺失值的数据

计算整体特征重要性 Eli5、rfpimp

Drop

Column

Importance

一个特征的重要性等于去除这个特征的新模型的accuracy/R^2与原模型的差值 比Permutatin Importance的测算精度高

1.计算效率特别差,很消耗资源

2.对多重共线性的敏感度高3.只能用在随机森林模型上

计算整体特征重要性 rfpimo

Shapley

value

一个特征的shapleyvalue是该特征在所有的特征序列中的平均边际贡献

1.解决了多重共线性问题

2.不仅考虑单个变量的影响而且考虑变量组的影响,变量之间可能存在协同效应

计算效率低

1.计算个体的特征Shapley value

2.所有个体的每个特征的Shapley value的绝对值求和或求平均即为整体的特征重要性

SHAP

2 SHAP

本文主要介绍的SHAP属于模型事后解释的方法,它的核心思想是通过计算特征对模型输出的边际贡献,从全局和局部两个层面对“黑盒模型”进行解释。SHAP构建一个加性的解释模型,即:所有的特征都视为“贡献者”。

SHAP的全称是SHapley Additive exPlanation,SHAP是由Shapley value启发的可加性解释模型。而Shapley value起源于合作博弈论,那什么是合作博弈呢?举例说明:甲乙丙丁四个工人一起打工,甲和乙完成了价值100元的工件,甲、乙、丙完成了价值120元的工件,乙、丙、丁完成了价值150元的工件,甲、丁完成了价值90元的工件,那么该如何公平、合理地分配这四个人的工钱呢?Shapley提出了一个合理的计算方法,我们称每个参与者分配到的数额为Shapley value。

结合文章一开始提到的预测任务,就是已知条件(Age=65,Sex=F,BP=180,BMI=40)一起完成了预测结果(Output=0.4),那么该如何公平、合理地分配这四个已知条件对预测结果的贡献呢?此时SHAP模型就会给这四个已知条件都分配一个Shapley value值,根据这个值我们就可以很好的进行理解。

SHAP可以具体解决的任务
  • 调试模型用

  • 指导工程师做特征工程

  • 指导数据采集的方向

  • 指导人们做决策

  • 建立模型和人之间的信任

SHAP库可用的explainers

在SHAP中进行模型解释需要先创建一个explainer,SHAP支持很多类型的explainer。

  • deep:用于计算深度学习模型,基于DeepLIFT算法,支持TensorFlow / Keras。
  • gradient:用于深度学习模型,综合了SHAP、集成梯度、和SmoothGrad等思想,形成单一期望值方程,但速度比DeepExplainer慢,并且做出了不同的假设。 此方法基于Integrated Gradient归因方法,并支持TensorFlow / Keras / PyTorch。
  • kernel:模型无关,适用于任何模型
  • linear:适用于特征独立不相关的线性模型
  • tree:适用于树模型和基于树模型的集成算法,如XGBoost,LightGBM或CatBoost

3 实验

在网上找了几个相关的实验跑一下加深印象,SHAP模型输出的可视化图真的是挺美观的。如图2-3所示,红色特征使预测值更大(类似正相关),蓝色使预测值变小,紫色邻近均值。而颜色区域宽度越大,说明该特征的影响越大。

图2 蜂群图(Beesworm Plot)

 图3 使用力图(Force Plot)

下图总结了用于解释任何机器学习模型的11种shap可视化图形:

图4 shap可视化图形

数据集

使用标准的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值