归因分析笔记5:机器学习可解释性
可解释的机器学习
电⼦书《可解释的机器学习(Interpretable Machine Learning)》。
在线阅读
GitHub:
该书认为特征被认为是可解释的,⽐如给定⼀天的温度或⼀个⼈的⾝⾼。特征的可解释性是⼀个很⼤的假设。但是,如果很难理解输⼊特征,那么就更难理解模型的作⽤了。
从宏观业务流程看可解释机器学习
这种多层次的抽象还有助于理解统计学家和机器学习从业者之间⽅法的差异。统计学家处理数据层,例如规划临床试验或设计调查。它们跳过⿊盒模型层,直接转到可解释性⽅法层。机器学习专家还处理数据层,例如收集⽪肤癌图像的标记样本或抓取维基百科。然后他们训练⼀个⿊匣⼦机器学习模型。可解释性⽅法层被跳过,⼈类直接处理⿊盒模型预测。可解释的机器学习融合了统计学家和机器学习专家的⼯作
使机器学习可解释两种⽅法
1. 使⽤可解释模型,例如决策树,决策规则和线性回归。
2. 使⽤与模型⽆关的解释⼯具,这些⼯具可以应⽤于任何监督式机器学习模型
与模型⽆关的可解释性⽅法
通过更改机器学习模型的输⼊并测量预测输出的变化来⼯作
1. 解释单个预测的局部⽅法,例如局部可解释的模型不可知的解释(local interpretable model-agnostic explanations , LIME)和Shapley值。
2. 描述特征影响模型平均⾏为的全局⽅法。如: 部分依赖关系图,累积局部效应,排列特征重要性(par
tial dependence plot, accumulated local effects, permutation feature importance)和许多其他⽅法。
3.基于⽰例的⽅法,这些⽅法⽣成数据点作为解释。反事实解释、原型、有影响⼒的实例和对抗性⽰例(Counterfactual explanations, prototypes, influential instances and adversarial examples)都是基于⽰例的⽅法
基于⽰例的解释⽅法:
反事实解释告诉我们实例必须如何更改才能显着改变其预测。通过创建反事实实例,我们了解模型如何进⾏预测,并可以解释单个预测。
对抗性⽰例是⽤于欺骗机器学习模型的反事实。重点是翻转预测⽽不是解释它。
原型是从数据中选择的代表性实例,批评是这些原型不能很好地表⽰的实例。29
受影响的实例是对预测模型的参数或预测本⾝影响最⼤的训练数据点。识别和分析有影响⼒的实例有助于发现数据问题,调试模型并更好地了解模型的⾏为。
k-最近邻模型:基于⽰例的(可解释的)机器学习模型。
4.深度神经⽹络的特定解释⽅法. "⿊匣⼦"描述了⽆法通过查看其参数来理解的模型(例如神经⽹络)。⿊匣⼦的反⾯有时被称为⽩盒,在本书中被称为可解释的模型。与模型⽆关的可解释性⽅法将机器学习模型视为⿊匣⼦,即使它们不是。
可解释性的范围
全局、整体(Global, Holistic)模型的可解释性郡太守
理解模型如何根据其特征和每个学习组件(如权重,其他参数和结构)的整体视图做出决策
在实践中很难实现
全局模型在模块化级别的可解释性
模型的某些部分如何影响预测
不完美的人生并⾮所有模型都可以在参数级别进⾏解释。对于线性模型,可解释部分是权重,对于树,它是分割(所选特征加截⽌点)和叶节点预测。
线性模型看起来好像可以在模块化级别上完美地解释,但单个权重的解释与所有其他权重互锁。对单个权重的解释总是伴随着脚注: 其他输⼊特征保持相同的值
预测房屋价值的线性模型(同时考虑房屋的⼤⼩和房间数量)可能对房间特征具有负权重。之所以会发⽣这种情况,是因为已经存在⾼度相关的房屋⼤⼩特征。在⼈们喜欢⼤房间的市场中,如果房间较少的房⼦具有相同的⼤⼩,那么房间较少的房⼦可能⽐房间多的房⼦更有价值。
权重仅在模型中其他特征的上下⽂中才有意义。
单个预测的局部可解释性
单个实例,检查模型对此输⼊的预测内容,并解释原因
在局部,预测可能仅线性或单调地依赖于某些特征,⽽不是对它们具有复杂的依赖性。例如,房屋的价值可能⾮线性地取决于其⼤⼩。但是,如果您只查看⼀个特定的100平⽅⽶房屋,则对于该数据⼦集,您的模型预测可能会线性地取决于⼤⼩。
模型不可知的全局⽅法
(Global Model-Agnostic Methods)
由于全局解释⽅法描述平均⾏为,因此当建模者想要了解数据中的⼀般机制或调试模型时,它们特别有⽤。
常⽤的与模型⽆关的全局解释⽅法:
部分依赖关系图是⼀种特征效应⽅法。
累积局部效应图是另⼀种特征效果⽅法,在特征从属时有效。
特征交互作⽤(H 统计量)量化了预测在多⼤程度上是特征联合效应的结果。
函数分解是可解释性的中⼼思想,也是⼀种将复杂预测函数分解为更⼩部分的技术。
排列特征重要性衡量特征的重要性,即在排列特征时损失增加。
全局代理模型将原始模型替换为更简单的解释模型。
原型和批评是发⾏版的代表性数据点,可⽤于增强可解释性。
其中, 排列特征重要性与我的⽬标相关, 重点看这⼀部分(其他⽅法先跳过)
排列特征重要性(模型依赖)
通过计算置换特征后模型预测误差的增加来衡量特征的重要性。
波轮洗衣机怎么用
如果对特征的值进⾏洗牌会增加模型误差,则该特征是"重要的",因为在这种情况下,模型依赖于该特征进⾏预测。
如果对特征的值进⾏洗牌以使模型误差保持不变,则该特征是"不重要的",因为在这种情况下,模型忽略了该特征以进⾏预测。
亲爱的上帝该算法(Fisher, Rudin, and Dominici, 2018)称为模型依赖(model reliance):
输⼊:训练模型 \(\hat{f}\),特征矩阵 \(X\),⽬标向量 \(y\),误差度量 \(L(y,\hat{f})\)。
1. 估计原始模型误差 \(e_{orig} = L(y, \hat{f}(X))\) (例如均⽅误差)
2. 对于每个功能 \(j \in \{1,...,p\}\) do:
(1)通过在数据 X 中置换特征 j 来⽣成特征矩阵 \(X_{perm}\)。这打破了特征 j 和真实结果 y 之间的关联。
(2)估计误差 \(e_{perm} = L(Y,\hat{f}(X_{perm}))\) 基于置换数据的预测。
(3)将排列特征重要性计算为商 \(FI_j= e_{perm}/e_{orig}\) 或差值 \(FI_j = e_{perm}- e_{orig}\)
3. 按 FI 降序对特征进⾏排序。
注意计算误差时⽤测试集
基于训练数据的模型误差估计是垃圾 - >特征重要性依赖于模型误差估计 - >基于训练数据的特征重要性是垃圾。
建议使⽤测试数据来实现排列特征的重要性。因为如果您对模型的预测受特征的影响程度感兴趣,则应使⽤其他重要性度量值,例如 SHAP 重要性(SHAP importance)
可替换⽅法
1.PIMP采⽤排列特征重要性算法,为重要性提供 p 值
2.基于损失(loss)⽅法, 从训练数据中省略该特征,重新训练模型并测量损失的增加
3.对于特定模型, 测量随机森林的基尼系数或回归模型的标准化回归系数的变化
4.基于⽅差的特征重要性度量(如 Sobol 指数或函数⽅差分析)对导致预测函数中⾼⽅差的特征给予了更⾼的重视。
5. SHAP 重要性(SHAP importance) 如果更改特征, 输出值变化⼤,则认为重要
可⽤程序
R包有DALEX 和vip, Python 库有 alibi, scikit-learn and rfpimp, 都实现了model-agnostic permutation feature importance.
模型不可知的局部⽅法
Local Model-Agnostic Methods
局部解释⽅法解释了单个预测. 局部解释⽅法有:
单个条件期望曲线是部分依赖关系图的构建块,⽤于描述更改特征如何更改预测。
局部代替模型 (Local surrogate models, LIME) 通过将复杂模型替换为本地可解释的代理模型来解释预测。
世界最高的桥作⽤域规则Scoped rules (anchors)是描述哪些特征值锚定预测的规则,从某种意义上说,它们将预测锁定在适当的位置。
反事实解释Counterfactual explanations通过检查需要更改哪些特征来实现所需的预测来解释预测。
Shapley 值是⼀种归因⽅法attribution method,可将预测公平地分配给各个特征。
SHAP是另⼀种Shapley值的计算⽅法,但也提出了基于数据中Shapley值组合的全局解释⽅法。
LIME 和 Shapley 值是归因⽅法,因此单个样本的预测被描述为特征效应的总和(the sum of feature effects)。其他⽅法,如反事实解释,是基于⽰例的(example-bad)
其中, Shapley值与我的⽬标相关, 重点看这⼀部分(其他⽅法先跳过)
Shapley 值
通过假设样本的每个特征值都是游戏中的"玩家player"来解释预测,预测是⽀出payout。Shapley值 - ⼀种来⾃联盟博弈论coalitional game theory的⽅法。
理解 Shapley 值的⼀种直观想法:特征值按随机顺序进⼊房间。房间中的所有特征值都参与游戏(= 有助于预测)。那么特征值的Shapley 值是当特征值加⼊它们时,房间中已有的联盟收到的预测的平均变化。
需解决问题
所有y值的平均预测为310,000, 则与平均预测相⽐,每个特征值对预测的贡献有多⼤?
对于线性回归模型,答案很简单。每个特征的效果是特征的权重乘以特征值。
对于更复杂的模型,需要如LIME使⽤局部模型来估计效应。另⼀个解决⽅案来⾃合作博弈论:沙普利值,由沙普利(1953)创造。根据玩家对总⽀出的贡献向玩家分配⽀出。玩家在⼀个组合中合作(cooperate in a coalition),并从这种合作中获得⼀定的利润。
玩家/游戏/⽀出概念
游戏game: 数据集的单个样本的预测任务
增益gain: 此样本的实际预测减去所有样本的平均预测值
玩家players: 样本的特征值,它们协作获得增益gain(=预测某个值)
⽬标
解释实际预测(300,000)和平均预测(310,000)之间的差异, 即相差-10000.
解释预测的例⼦: 特征1贡献30,000;特征2贡献10 000; 特征3贡献0; 特征4贡献贡献-50,000。贡献
值之和-10,000(最终预测减去平均预测的公寓价格的结果)
特征Shapley 值计算
公寓例⼦-4个特征: park-nearby, cat-banned, area-50 , floor-2nd
确定特征cat-banned 的 Shapley 值所需的所有特征值组合(联盟coalitions)
No feature values
park-nearby
area-50
floor-2nd
park-nearby+area-50
park-nearby+floor-2nd
area-50+floor-2nd党纪党规有哪些
park-nearby+area-50+floor-2nd
对其中每个组合计算具有和不具有特征值的预测公寓价格, 并取差值以获得边际贡献. 随着更多特征的添加,可能的组合数量呈指数级增长.
皮卡丘简笔画
Shapley值是边际贡献的(加权)平均值. 将不在组合中的特征值替换为数据集中出现过的随机特征值,以便从机器学习模型中获取预测.
如果本别估计所有特征值的 Shapley 值,则得到所有特征值预测的完整分布(相对于平均值)狡猾造句
特征Shapley 值含义
特征值 j 的 Shapley 值的解释是:第 j 个特征的值对特定样本的预测做出了\(\phi_j\)⼤⼩的贡献(与数据集的平均预测相⽐).
Shapley值分析预测宫颈癌的随机森林模型的预测, 宫颈癌数据集中⼀位⼥性的Shapley值:
这个样本宫颈癌预测值为0.57, 她得宫颈癌的概率⽐平均值0.54⾼出0.03. 已诊断的性病(STDs)数量所增加的患病概率最多.
Shapley 值性质
是唯⼀满⾜"效率"、"对称"、"虚拟"和"可加性"(Efficiency, Symmetry, Dummy and Additivity)性质的归因⽅法,这些性质加在⼀起可以被视为公平⽀付的定义。
算法
单个特征值的近似 Shapley 估计值:
输出:j-th 特征值的沙普利值
必需:迭代次数 M、感兴趣的样本 x、特征索引 j、数据矩阵 X 和机器学习模型 f