想要解释一个模型,通常有以下三个办法:
- 仅使用可解释模型(线性模型,决策树等)
缺点:预测性能可能会下降 - 使用特定于模型的解释方法
缺点:他会将你绑定在一种模型类型,同时很难切换到其他的模型类型 -
使用模型无关的解释方法
优势:
(1)模型的灵活性:解释方法可以和任何机器学习模型一起使用,例如随机森林和深度神经网络
(2)解释的灵活性:不限于某种形式的解释。某一些情况,可以使用线性公式,另一些情况,特征重要性的图形可以使用
(3)表示方法的灵活性:解释系统应该能够使用与所解释模型不同的特征表达方式。例如,对于使用抽象词嵌入向量的文本分类器,可能更希望使用单个词的存在进行解释。
可解释机器模型的图景
5.1 部分依赖图
又称PD图(Partial Dependence Plot),显示了一个或两个特征对机器学习模型的预测结果的边际效应。部分依赖图可以显示目标和特征之间的关系是线性的、单调的或更复杂的。
用于回归的部分依赖函数定义为:
解释:
两个特征的特征依赖图(三维):
优点:
(1)部分依赖图的计算很直观:如果我们强制所有数据点都假定该特征,则特定特征值处的部分依赖函数表示平均预测
(2)在满足计算PDP的特征和其他特征都不相关的前提下,PDP可以完美表示该特征如何平均影响预测。
(3)部分依赖图很容易实现
(4)部分依赖图有因果关系
缺点:
(1)PDP实际最大特征数目为2。
(2)一些PD图未显示特征分布,这可能会产生误导,你可能会过渡解释几乎么有数据的区域。通过显示RUG(x轴上的数据点指示器)或直方图可以轻松解决这个问题。
(3)独立性的假设:PDP的最大问题。它假设了选定特征和其余特征不相关。实际情况下,这很难实现。例如:身高特征和体重特征一定有关联性
(4)异质效应可能被隐藏:因为PD曲线仅显示平均边际效应。
举个例子:假设对于一个特征,你的数据点中的一半与预测具有正相关关系,另一半负相关。PD曲线可能是一条水平线, 因为数据集的两半效果可能互相抵消。然后我们可能得出结论,该特征对预测没有影响。通过绘制个体条件期望曲线而不是聚合线,我们可以发现异构效应。
5.2个体条件期望
又称ICE(Individual Conditional Expectation),因为每个实例显示一条线,该线显示了特征更改时实例的预测如何改变
与PDP的区别和关系:
PDP是一种全局方法,他不关注特定实例,而是关注整体平均。
ICE图将实例对每个特征的预测依赖关系可视化,每个实例分别产生一条线,而PDP只有一条线。**PDP是ICE图的线的平均值。
计算线的值:
保持其他所有特征相同,通过用网络中的值替换特征的值创建该实例的变体并使用黑盒模型对这些新创建的实例进行预测。结果是一组具有来自网格的特征值和相应预测的点
Why ICE instead of PDP?
PDP会掩盖由交互作用创建的异构关系。
例子:
宫颈癌dataset。之前用PDP分析的时候随机森林用于预测给定风险因素的情况下女性患病的概率。通过观测PDP我们看到换宫颈癌的概率在50岁左右增加(下图左),但这是否适用于数据集的每一个女性呢?
我们可以通过观测ICE图
通过ICE看到,绝大多数数据集都在50岁左右增加患病概率,但有一些患病概率大于0.4的女性,随着年龄增长,概率变化不大。
再让我们看看自行车租赁的ICE图(使用随机森林):
通过观察,我们可以看到,基本所有数据集呈现相同的趋势,没有特别的相互作用,所以他们提供的信息可以用PDP很好的概括了。
优点
ICE更直观,也可以揭示异质关系
缺点
(1)ICE曲线只能有意义地显示一个特征,两个特征需要绘制多个重叠平面,这是看不懂的。
(2)和PDP一样,如果感兴趣的特征和其他特征相关联,则根据特征联合分布,线上的某些点可能是无效的数据点
(3)图像会过于拥挤
5.3累加局部效应图
累积局部效应(ALE Accumulated Local Effects Plot)描述了特征平均如何影响机器学习模型的预测。ALE图是PDP更快、更无偏的替代方法。
PDP在特征相关情况下的严重问题:
计算与其他特征强相关的特征的部分依赖图涉及对在实际中不太可能出现的人工数据实例的平均预测,这会极大地影响估计的特征效应。
举个例子:原模型使用面积大小,房间数量两个特征预测房子价值,现在用面积大小作为PDP的选择特征,在第一个网格值(假设30平方米处),将所有实例的面积大小改为30平方米,然后进行预测。这样,对于拥有十几个房间的大房子,我们仍用30平方米进行预测。这样生成的数据点是异常、没有实际意义的。但在PDP中我们没有对这种现象采取任何措施。
引入ALE方法
先总结PDP,M,ALE如何在某个网格值下计算的特征效应
(1)PDP:展示了对于特征对每个数据实例具有值时模型平均预测的结果。忽略了值是否对所有数据实例都有意义
(2)M图:展示了模型对于特征的值接近的数据实例平均预测什么。该效应可能是因为该特征,也可能是因为相关的特征。
(3)ALE图:展示了该窗口中数据实例的模型预测如何在围绕的特征的一个小的窗口中变化
- PDP对边际分布的预测进行平均
- M图对条件分布的预测平均,与PDP相比唯一改变的是,我们根据感兴趣的特征的每个网格值来平均预测,而不是假设每个网格值的边际分布。For example,为了计算对房子价值的预测值的影响,我们可以对之前的所有房屋的平均值预测(拿一个数据子集来预测)
- ALE图对预测的变化进行平均,然后将其累积在网格上
与M图的区别在于,ALE图average预测的变化,而不是预测本身。
ALE方法的核心是计算预测中的差异,因此我们用网格值替换感兴趣的特征。预测中的差异是特征在特定间隔内单个实例的效应
xxxx
PDP和ALE的区别
对于一个奇怪的模型:
在右下角我们可以看到这个Model prediction奇怪的地方。
该区域远离数据分布,并不会影响到模型的性能,所以也不应该影响的模型的解释。
这种outcome是现实的,训练模型时,学习算法为了将现有数据实例的损失降到最低,奇怪的现象可能会发生在训练数据的分布之外。
问题来了
对于PDP来说,在这种情况下是不可用的。因为他受到这个异常区域的影响。如下图:
但是ALE图正确识别了机器学习模型在特征和预测之间的线性关系,忽略了异常区域。
ALE图的优点
(1)ALE图是无偏的:特征相关时,他们仍然有效。PDP会失效,因为他们会将那些现实中不可能出现或不太可能出现的特征组合考虑在内
(2)ALE图计算速度比PDP更快
(3)ALE图的解释很清楚:在给定值的情况下,可以从ALE图中读出更改特征对预测的相对影响
(4)ALE图以0为中心
(5)2D ALE图仅显示交互作用:两个特征输入的PDP,会全部显示特征A,特征B,特征A和特征B的交互对预测的影响,而ALE图只显示特征A和特征B的交互对预测的影响。
缺点
(1)间隔设置不良好的话,ALE图可能会不太稳定
(2)ALE图不附带ICE曲线,ICE曲线可以揭示特征效应的异质性(对于数据子集而言,特征的效应应该有所不同)。但在ALE图中,只能检查每个间隔实例之间的效应是否不同,但是每个间隔具有不同的实例。
(3)ALE图实现更复杂且不直观
(4)二阶ALE估计在整个特征空间中具有不同的稳定性,而且这是不以任何方法可视化的
(5)ALE解决了相关特征下的问题,但是如果两个特征强相关,解释仍然困难。
(6)但是总结而言,ALE还是比PDP在大多数情况下好。
5.4特征交互
如果存在特征交互,预测可以分解为4个项:常量项,第一个特征项,第二个特征项,两个特征的交互项
估计交互强度的一种方法是衡量预测的变化在多大程度上取决于特征的交互作用。这项衡量被称为H统计量。
理论:弗里德曼的H统计量
处理2种情况:
- 双向交互度量:告诉我们模型中的两个特征是否交互以及在何种程度上交互
-
总体交互度量:告诉我们某个特征在模型中是否与所有其他特征发生交互以及在何种程度上的交互
H统计量的评估成本很高
实际应用中:
(1)先看单一特征与其他所有特征的交互强度
(2)接着可以选择其中一个特征,更深入得研究其与其他特征之间的双向交互
优点
- 交互作用H统计量通过部分依赖分解,具有理论基础
- H统计量具有有意义的解释:交互作用定义为由交互作用解释的方差份额
- 无量纲,可以跟任一特征比较
- 会检测各种类型的交互
- 也可以分析任意更高阶的交互,例如3个或更多特征之间的交互
缺点 - H统计量计算量很大,效率低。该计算涉及边际分布。如果选择不用所有的数据点来提高计算效率,要注意稳定度的问题。
xxx
5.5置换特征重要性
通过置换特征后计算模型预测误差的增加来衡量特征的重要性。
分类的例子:
回归的例子:
优点
- 很好理解这样做的原因:特征重要性是当特征信息被破坏的时候模型误差的增加
- 会自动考虑与其他特征的所有交互
- 不需要重新训练模型
缺点
- 非常不清楚应该使用训练集还是测试集来计算特征的重要性
- 这个方法与模型的误差有关
- 可能因为不切实际的数据实例产生偏差
- 添加相关特征可以通过在两个特征之间拆分重要性降低关联特征的重要性
For example,预测第二天下雨的概率,用前一天早上八点的温度作为一个特征。训练一个随机森林,发现早上八点温度这个特征是最重要的。这时候我获取了前一天早上九点的温度这一特征。这两个特征强相关,知道这一特征并不会提供很多的信息,但多一个特征总是好的。于是,用这2个特征和其他特征训练随机森林,随机森林一些树用了早上八点temp,一些树用了早上9点temp,一些同时拥有,一些什么都没有。我们会发现,这两个特征的重要性相加会超过原来早上八点temp的重要性,但是他们两个单独的重要性都比之前早上八点temp这一特征低,特征重要性被拆分了!
5.6全局代理模型
全局代理模型是一种可解释的模型,经过训练可近似黑盒模型的预测
我们希望在可解释的约束下,代理模型预测函数尽可能接近地逼近我们的黑盒预测函数。函数可以来自任何可解释的模型
这是一种模型无关的方法,因为他不需要有关黑盒模型内部运作的任何信息。
步骤:
一种衡量代理模型赋值黑盒模型能力的方法是R-squared
优点
- 非常灵活,直观
- 使用R-squared,很方便测量代理模型在逼近黑盒模型的性能
缺点 - 得出的是模型的结论不是数据的结论
- 尚不清楚R-squared的最佳截止点是什么
- 对于数据集的一个子集,代理模型可能性能很好,但对于另外一个子集,可能性能就变差
5.7局部代理(LIME)
局部代理模型本身是可解释的模型,用于解释黑盒机器学习模型的单个实例预测。
LIME不是训练全局代理模型,而是专注于训练局部代理模型以解释单个预测
方法:
LIME仅优化损失部分,用户必须自己确定复杂度。比如说,用线性模型作为局部代理模型,事先,我们必须选择特征数量。
LIME中,分类特征比数据特征更容易解释
优点
- 无关底层机器学习模型
- 是少数 适用于表格数据,图像和文本的方法之一
- LIME在Python和R中都有现有库
缺点 - 对表格数据使用LIME时,如何正确定义邻域很难解决
5.8 Shapley值
Shapley值是联盟博弈论的一个方法。可以通过假设实例的每个特征值是游戏中的玩家来解释预测,同时预测是总支出。它告诉我们如何在特征中公平的分配总支出。
游戏是数据集单个实例的预测任务
收益是此实例的实际预测值减去所有实例的平均预测值
玩家是实例的特征值
举例:一所公寓被预测价值为30万欧元,其特征是50平方米,二楼,公园附近,禁止猫进入。所有公寓的平均预测价格为31万欧元。
我们的目标:
解释差额:-10000欧元
答案可能是:公园附近+30000欧元,50平方米+10000欧元,2楼+0欧元,禁止猫进入-50000欧元,共计-10000欧元。
Shapley值是所有可能的联盟中特征值的平均边际贡献
在本例中:
对于这些联盟中的每个联盟,我们都计算其带有或者不带有特征“禁止猫进入”的预测公寓价格,并取其差值获得边际贡献。Shapley值是边际贡献的(加权)平均值。用公寓数据集中的随机特征值替换不在联盟中的特征的特征值
特征值的Shapley值的解释是:与数据集的平均预测相比,第j个特征的值对这个特定实例的预测的贡献为
他适用于回归和分类
优点
- 预测值和平均预测值之前的差异在实例的特征值之间公平分配
- Shapley值允许进行对比性解释,无需与整个数据集的平均预测进行比较,可以将其与子集甚至单个数据点比较。
- 唯一具有扎实理论的解释方法。
缺点 - Shapley值需要进行大量的计算时间
- 容易被误解。Shapley值不是从模型训练中删除特征后的预测值之差。而是:给定当前的一组特征值,特征值对实际预测值与平均预测值之差的贡献就是估计的Shapley值。
- 始终使用所有特征
5.9SHAP
pass