《可解释机器学习:黑盒模型可解释性理解指南》随笔(一)

可解释机器学习书籍内容整理和思考(一到四章),主要为一些可解释的基础理论和较为简单的可解释性模型。

Chapter 1: 引言

  • 本书关注监督学习,黑盒模型
  • 本书认为特征是可解释的,比如某一天的温度或一个人的身高 (假设是否合理……)

Chapter 2: 可解释性

  • 定义1:人们能够理解决策原因的程度
  • 定义2:人们能够一致地预测模型结果的程度

可解释性的重要性

  • 分类准确性之类的单一指标无法完整地描述大多数实际任务 (motivation),
    何时需要解释——高风险环境,问题形式化的不完整性,人类的好奇心和学习能力,渴望找到事物存在的意义(机器的决策对人的生活影响越大,机器行为的解释就越重要),科学的目标,安全措施,检测偏见,社会认可度,管理社交互动,调试和审核
  • 需要具备的性质—:公平性,隐私性,可靠性,因果性,可信任性
  • 只有当输入是因果特征的代理,而不是实际导致结果时,系统才能被博弈(e.g. 贷款申请人与系统之间的博弈)。在理想情况下,模型只使用因果特征,因为它们不可被博弈。

可解释性方法的分类

  1. 自解释/事后解释
  2. 模型方法的输出——特征概要统计量,特征概要可视化,模型内部,数据点(e.g. 反事实解释),自解释模型
  3. 特定于模型/与模型无关
  4. 局部/全局

可解释性的范围

  1. 算法透明度(算法是如何创建模型的? 不是本书重点)
  2. 全局、整体的模型可解释性(训练好的模型如何进行预测?)
  3. 模块层面上的全局模型可解释性(模型的某些部分如何影响预测?)
  4. 单个预测的局部可解释性(为什么模型会对一个实例做出某种预测?)
  5. 一组预测的局部可解释性(为什么模型对一组实例进行特定的预测?)

可解释性估计

(目前只有一些初步的研究,e.g. Doshi Velez and Kim)

  • 应用级评估(专业人员)
  • 人员级评估(非专业人员)
  • 功能级评估

解释的性质(可用于判断解释方法或解释的好坏)

解释通常以一种人类可理解的方式将实例的特征值与其模型预测联系起来

  1. 解释方法的性质
    • 表达能力
    • 半透明度(高半透明可以依赖更多的信息生成解释,低半透明解释方法更易于移植)
    • 可移植性
    • 算法复杂度
  2. 单个解释的性质——准确度,保真度,一致性,稳定性,可理解性,确定性,重要程度,新颖性,代表性

人性化的解释

作为事实的解释,人们更喜欢简单的解释

  • 什么是解释——解释是“为什么”这个问题的答案
  • 什么是好的解释
    • 解释的对比性(人们往往倾向于在反事实的情况下思考。可能还涉及在数据中寻找原型)
    • 解释的选择性(解释要简短。如果一个事件可以用各种原因解释,则被成为“罗生门效应”)
    • 解释的社会性(注意目标受众)
    • 解释的重点是异常(关注异常特征)
    • 解释是真实的(解释应尽可能真实地预测事件)
    • 好的解释与被解释者的先验知识是一致的
    • 好的解释是普遍性的(但是异常原因胜过普遍原因)

Chapter 3: 数据集

自行车租赁(回归)

目的是根据天气和天数等来预测会租用多少量自行车

数据集下载地址——自行车租赁

本书处理后的R语言脚本以及最终的RData文件

YouTube垃圾评论(文本分类)

文本二分类问题

数据集下载地址——YouTube垃圾评论

本书处理后的R语言脚本以及最终的RData文件

宫颈癌的危险因素(分类)

二分类问题

数据集下载地址——宫颈癌的危险因素

本书处理后的R语言脚本以及最终的RData文件

Chapter 4: 可解释的模型


可解释模型的类型及其性质

线性回归

预测目标结果为特征输入的加权和,模型是否为“正确”取决于数据中的关系是否满足某些假设,即线性、正态性、同方差性(现实中常常不合理)、独立性(实例间相互独立)、固定特征(无测量误差)和不存在多重共线性(不需要强相关特征)。

解释

  • 数值特征的解释——特征$x_k$增加一个单位,预测结果$y$增加$\beta_k$
  • 分类特征的解释——将特征$x_k$从参照类别改为其他类别时,预测结果$y$增加$\beta_k$

解释模型的另一个重要度量是R-平方,该度量可以知道模型解释了多少目标结果的总方差。$SSE$是误差项的平方和,$SST$是数据方差的平方和。
$$R^2 = 1 - SSE / SST$$ $$SSE = \sum_{i=1}^{n}[y^{(i)} - \hat{y}^{(i)}]^2$$ $$SST = \sum_{i=1}^{n}[y^{(i)} - \bar{y}]^2$$
R-平方显示有多少方差可以用线性模型解释.对于根本无法解释数据的模型,R-平方的值为 0;对于解释数据中所有方差的模型,R-平方的值为1。

由于R-平方随模型中的特征数量而增加,因此需要对公式进行调整。其中$p$是特征的数量,$n$是实例的数量。
$$\bar{R}^2 = 1 - (1 - R^2)\frac{n - 1}{n - p - 1}$$

在线性回归模型中,某个特征的重要性可以用它的t-统计量来衡量,它以标准差为尺度估计权重。其中$SE$为标准差
$$t_\hat{\beta_j} = \frac{\hat{\beta_j}}{SE(\hat{\beta_j})}$$

可视化解释

  1. 权重图
    图中显示95%置信区间,但是特征是在不同尺度上测量的,可能需要缩放特征。


    线性回归模型的权重图
  2. 效应图
    当线性回归模型的权重与实际特征值相乘时,可以进行更有意义的分析。效应图可以帮助了解权重和特征的组合对数据预测的贡献程度(计算乘积),并使用箱线图可视化效应。


    特征效应图

解释单个实例预测

同样也可以用效应图显示


单个实例的效应图

分类特征的编码

  • 虚拟编码——每个类别的权重是相应类别和参照类别之间预测的估计差异(第一列全为1,表示截距,A类不需要列)
  • 效应编码——每个类别的权重是从相应类别到总体均值的预测估计差异(第一列全为1,用于估计截距),一般来说虚拟编码就够了。

线性模型是否有很好的解释

  • 线性模型虽然是对比性的,但它对比的实例往往没有意义(除非是归一化后的均值)。
  • 非线性和交互作用越多,线性模型越不准确,解释越不真实。

稀疏线性模型

  1. Lasso——一种将稀疏性引入线性回归模型的自动而渐变的办法。
    其实就是加入了一个$L_1$范数对大权重进行惩罚,并用一个参数控制正则化强度,该参数通常通过交叉验证进行调整。

优点

  • 将预测建模为一个加权和,使预测的生成变得透面
  • 易于被接受,有很深的专业知识时可以使用
  • 估计权重简单,可以保证找到最佳权重(满足一定条件)

缺点

  • 每一个非线性或交互都必须是由人工构成的
  • 预测性能不佳
  • 权重的解释不直观,例如出现两个强相关的特征,导致其中一个本应与结果呈现正相关的特征反而变成了负相关

逻辑回归

线性回归用于分类有什么问题

模型不输出概率,会给出低于0或高于1的值,没有一个有意义的阈值,不能扩展到多分类问题。

理论

逻辑函数定义:
$$Logistic(\eta) = \frac{1}{1 + exp(-\eta)}$$

解释

逻辑回归模型是对数几率的线性模型


逻辑回归模型解释

优缺点

与线性模型类似,但解释更困难,可能受完全分离的影响。

GLM、GAM和其他模型

本节主要解释广义线性模型(GLM)和广义加性模型(GAM)

这里重点关注三个问题:线性模型的假设给定特征的输出结果为高斯分布(解决方案:GLM),特征可加性(相当于无交互,解决方案:手动添加交互)和关系是线性(解决方案:GAM,特征转换)的。

非高斯结果输出——GLM

GLM在数学上使用连接函数$g$将特征的加权和与假定分布的均值连接起来,其中连接函数根据结果的类型可以自由选择($E_Y$: 指数族的概率分布):

$$g(E_Y(y|x)) = \beta_0 + \beta_1x_1 + … + \beta_px_p$$

逻辑回归模型也是一个假定伯努利分布并使用Logit函数连接期望均值与加权和。

交互

添加交互特征作为新的列

非线性效应——GAM

实现非线性可以采用特征转换,特征分类或GAM
GAM的关系如下:
$$g(E_Y(y|x)) = \beta_0 + f_1(x_1) + f_2(x_2) + … + f_p(x_p)$$

可以使用样条函数来学习非线性函数。

优点

  • 理论上都可以找到解决该问题的扩展
  • 工业界和研究人员已经有了丰富的经验
  • 可以用于推断置信区间、显著性检验和预测区间等
  • 平稳地过度到更灵活的模型的同时,保留一些可解释性

缺点

  • 扩展简单线性模型的方法太多了
  • 线性模型的大多数修改都会使得模型的解释性变差
  • GLM,GAM等依赖于有关数据生成过程的假设

决策树

推荐The Elements of Statistical Learning来更详细地了解CART

决策树细节略。其中,决策树的最佳截断值是使两个结果子集在目标结果方面尽可能不同(方差和基尼系数最小化)。

解释

模板:“如果特征$x$比阈值$c$ [小/大] AND ……,那么预测结果就是节点$y$中实例的平均值”

遍历一个特征的所有分割,并测量它相对于父节点减少了多少方差或基尼系数,可以得到一个特征的总体重要性

单个实例的预测是目标结果的均值加上在根节点和实例结束的终端节点之间发生的所有分割的贡献和。

优点

  • 适合捕获数据中特征之间的交互
  • 数据最终被分成多个组,通常更容易理解
  • 树结构有一个自然的可视化
  • 数按照之前的定义可以提供一个良好的解释。数结构自动地将单个实例的预测值视为反事实:“如果某个特征大于或小于分割点,则预测值将是$y_1$而不是$y_2$。”

缺点

  • 树不能处理线性关系
  • 缺乏平滑度
  • 不稳定
  • 终端节点的数量随着深度的增加而迅速增加

决策规则

决策规则是一个简单的IF-THEN语句,由条件(也成为先行条件)和预测组成。

决策规则的有用性通常概括为支持度(规则条件适用的实例所占的百分比)和准确性,两者之间通常需要有一个权衡。

组合多个规则有两种策略:决策列表(查表)和决策集(投票)

本书列举三种算法:从单个特征学习规则(OneR),顺序覆盖和贝叶斯规则列表

OneR

OneR从所有特征中选择一个包含有关感兴趣结果的最多信息的特征,并用该特征创建决策规则,一个更好的叫法应该为OneFeatureRules

OneR算法简单且快捷:
(1)通过选择适当的间隔来离散化连续特征
(2)对于每个特征。在特征值和(分类)结果之间创建交叉表;对于特征的每个值创建一条规则,预测具有此特定特征值(可以从交叉表中读取)的实例最常见类别;计算特征规则的总误差。
(3)选择总误差最小的特征。OneR始终覆盖数据集的所有实例,因为它使用所选特征的所有级别( 即 所有可能值)。缺失值可以作为附加的特征值处理,也可以预先输入。

顺序覆盖

顺序覆盖重复学习单条规则以创建一个决策列表(或集合),该决策决策列表(或集合)按规则覆盖整个数据集。

首先,找到一条适用于某些数据点的规则;删除规则涵盖的所有数据点,直到没有剩余的数据点为止;重复规则学习,在剩余的数据点中删除覆盖的点,直到没有剩余的数据点或满足另一个停止条件为止。(分治法)

对于多类别的设置,通过频繁度对类别进行排序,顺序覆盖算法先从最不频繁类开始,为其学习规则……

如何学习一条规则——束搜索

  • 学习决策树(使用CART或其他树学习方法)
  • 从根节点开始,递归地选择最纯的节点(例如具有最低的错误分类率)
  • 终端节点的多数类别用作规则的预测,通向该节点的路径用作决策规则。

RIPPER是顺序覆盖算法的一种变体。它使用后处理阶段(即规则修剪)来优化决策列表(或集合)。RIPPER可以在有序模式或无序模式下运行,并生成决策列表或决策集。

贝叶斯规则列表

粗略方法——

  • 从数据中预挖掘频繁适用的模式,这些模式可作为决策规则的条件。
  • 从预挖的规则中选择决策列表。
  1. 频繁模式的预挖
    模式的频率是通过其在数据集中的支持度来测量的
    可以利用Apriori找到频繁模式,Apriori算法基于具有单个特征值的频繁模式,迭代地寻找越来越高阶的特征值组合。
  2. 学习贝叶斯规则列表
    BRL算法的目标是通过选择预挖的条件学习一个准确的决策列表决策列表,同时对规则较少、条件较短的列表进行优先级排序。方法如下(细节较为复杂,这里略= =):
  • 生成初始决策列表,该列表是从先验分布中随机抽取的。
  • 通过添加、切换或删除规则迭代地修改列表,确保结果列表遵循列表的后验分布。
  • 根据后验分布,从概率最高的采样列表中选择决策列表。

优点

  • IF-THEN规则很容易解释
  • 像决策树一样具有表达能力,同时更紧凑,这使得预测很快
  • 对于输入特征的单调变换具有很强的健壮性,因为条件中只有阈值会发生变化。
  • 通常生成稀疏模型,它们仅为模型选择相关特征
  • OneR这样简单的规则可以用作更复杂算法的基线

缺点

  • 几乎完全忽略了回归
  • 特征通常也必须是分类的
  • 在描述特征和输出之间的线性关系时,决策规则的效果不是很好的(面临阶跃预测函数)

RuleFit

RuleFit算法学习具有原始特征具有原始特征以及很多新特征(决策规则)的稀疏线性模型。RuleFit从决策树自动生成这些特征,通过将分割的决策合并为规则,可以将通过树的每条路径转为决策规则(其中决策树的节点预测被丢弃)。

生成大量树的任何算法都可以用于RuleFit,例如随机森林。

RuleFit提供了特征重要性度量,还引入了部分依赖图。

解释和示例

由于RuleFit最终会估计一个线性模型,因此其解释与“常规”线性模型的解释相同。唯一的区别是该模型具有从决策规则派生的新特征。

理论

  1. 步骤1:规则生成
    任何数集成算法都可以用作RuleFit生成树(例如Bagging、随机森林、AdaBoost和MART)
  2. 步骤2:稀疏线性模型
    使用Lasso训练稀疏线性模型(过程略)
  3. 步骤3(可选):特征重要性
    使用标准预测变量来测量特征重要性(略)

优点

  • 自动将特征交互添加到线性模型中
  • 可以处理分类和回归任务
  • 二进制决策规则易于解释
  • 只有少数规则适用于单个示例,这提高了局部可解释性
  • RuleFit提出了很多有用的诊断工具(特征重要性、部分依赖图和特征交互)

缺点

  • 会创造很多规则
  • RuleFit最终产物还是线性模型,所以权重解释仍然是非确定的(需要假设其他所有特征均已固定)

其他可解释性模型

还有很多模型结合或修改了不可解释的机器学习模型,以使其更具可解释性),这里不做介绍。

朴素贝叶斯分类器

朴素贝叶斯分类器使用条件概率的贝叶斯定理。对于每个特征,它根据特征值计算类的概率。朴素贝叶斯分类器独立地计算每个特征的类概率,这相当于特征独立性的强假设。

由于可以解释条件概率,因此对于每个特征,它对特定类别预测的贡献是非常明显的。

K-近邻

K-近邻方法可用于分类和回归,并将数据点的近邻用于预测。

该模型在本质上是局部的,因此缺乏全局模型可解释性。模型是否可解释仅取决于是否可以“解释”数据集中的单个实例的问题。

文章目录
  1. 1. Chapter 1: 引言
  2. 2. Chapter 2: 可解释性
    1. 2.1. 可解释性的重要性
    2. 2.2. 可解释性方法的分类
    3. 2.3. 可解释性的范围
    4. 2.4. 可解释性估计
    5. 2.5. 解释的性质(可用于判断解释方法或解释的好坏)
    6. 2.6. 人性化的解释
  3. 3. Chapter 3: 数据集
    1. 3.1. 自行车租赁(回归)
    2. 3.2. YouTube垃圾评论(文本分类)
    3. 3.3. 宫颈癌的危险因素(分类)
  4. 4. Chapter 4: 可解释的模型
    1. 4.1. 线性回归
      1. 4.1.1. 解释
      2. 4.1.2. 可视化解释
      3. 4.1.3. 解释单个实例预测
      4. 4.1.4. 分类特征的编码
      5. 4.1.5. 线性模型是否有很好的解释
      6. 4.1.6. 稀疏线性模型
      7. 4.1.7. 优点
      8. 4.1.8. 缺点
    2. 4.2. 逻辑回归
      1. 4.2.1. 线性回归用于分类有什么问题
      2. 4.2.2. 理论
      3. 4.2.3. 解释
      4. 4.2.4. 优缺点
    3. 4.3. GLM、GAM和其他模型
      1. 4.3.1. 非高斯结果输出——GLM
      2. 4.3.2. 交互
      3. 4.3.3. 非线性效应——GAM
      4. 4.3.4. 优点
      5. 4.3.5. 缺点
    4. 4.4. 决策树
      1. 4.4.1. 解释
      2. 4.4.2. 优点
      3. 4.4.3. 缺点
    5. 4.5. 决策规则
      1. 4.5.1. OneR
      2. 4.5.2. 顺序覆盖
      3. 4.5.3. 贝叶斯规则列表
      4. 4.5.4. 优点
      5. 4.5.5. 缺点
    6. 4.6. RuleFit
      1. 4.6.1. 解释和示例
      2. 4.6.2. 理论
      3. 4.6.3. 优点
      4. 4.6.4. 缺点
    7. 4.7. 其他可解释性模型
      1. 4.7.1. 朴素贝叶斯分类器
      2. 4.7.2. K-近邻