目录

可解释的机器学习

从宏观业务流程看可解释机器学习

使机器学习可解释两种方法

可解释性的范围

模型不可知的全局方法

排列特征重要性(模型依赖)

模型不可知的局部方法

Shapley 值

Shapley值的数学定义与计算

SHAP

Shapley值组合成全局解释

机器学习可解释性(Interpretability)概念和近年的发展

什么是可解释性

如何实现可解释性

训练前

训练中

训练后

可参考文献

SVM的解释与可视化

线性/非线性模型对比

SVM的解释


可解释的机器学习

电子书《可解释的机器学习(Interpretable Machine Learning)》。

在线阅读

https://christophm.github.io/interpretable-ml-book/index.html

GitHub:

https://github.com/christophM/interpretable-ml-book

该书认为特征被认为是可解释的,比如给定一天的温度或一个人的身高。特征的可解释性是一个很大的假设。但是,如果很难理解输入特征,那么就更难理解模型的作用了。

从宏观业务流程看可解释机器学习

这种多层次的抽象还有助于理解统计学家和机器学习从业者之间方法的差异。统计学家处理数据层,例如规划临床试验或设计调查。它们跳过黑盒模型层,直接转到可解释性方法层。机器学习专家还处理数据层,例如收集皮肤癌图像的标记样本或抓取维基百科。然后他们训练一个黑匣子机器学习模型。可解释性方法层被跳过,人类直接处理黑盒模型预测。可解释的机器学习融合了统计学家和机器学习专家的工作

使机器学习可解释两种方法

1. 使用可解释模型,例如决策树,决策规则和线性回归。

2. 使用与模型无关的解释工具,这些工具可以应用于任何监督式机器学习模型

与模型无关的可解释性方法

通过更改机器学习模型的输入并测量预测输出的变化来工作

1. 解释单个预测局部方法,例如局部可解释的模型不可知的解释(local interpretable model-agnostic explanations , LIME)和Shapley值。

2. 描述特征影响模型平均行为全局方法。如: 部分依赖关系图,累积局部效应,排列特征重要性(partial 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-based)

其中, Shapley值与我的目标相关, 重点看这一部分(其他方法先跳过)

Shapley 值

通过假设样本的每个特征值都是游戏中的"玩家player"来解释预测,预测是支出payout。Shapley值 - 一种来自联盟博弈论coalitional game theory的方法。

理解 Shapley 值的一种直观想法:特征值按随机顺序进入房间。房间中的所有特征值都参与游戏(= 有助于预测)。那么特征值的 Shapley 值是当特征值加入它们时,房间中已有的联盟收到的预测的平均变化

即有特征j和无特征j的预测差值=>j的边际贡献

需解决问题

所有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 特征值的Shapley值

输入:迭代次数 M、感兴趣的样本 x、特征索引 j、数据矩阵 X 和机器学习模型 f

对于所有 m = 1,...,M:

从数据矩阵 X 中绘制随机样本(instance)z

选择特征值的随机排列 o

排列样本x: \( x_o=(x_{(1)},\ldots,x_{(j)},\ldots,x_{(p)}) \)

排列样本z: \( z_o=(z_{(1)},\ldots,z_{(j)},\ldots,z_{(p)}) \)

构造两个新样本

含有j: \( x_{+j}=(x_{(1)},\ldots,x_{(j-1)},x_{(j)},z_{(j+1)},\ldots,z_{(p)}) \)

不含j: \( x_{-j}=(x_{(1)},\ldots,x_{(j-1)},z_{(j)},z_{(j+1)},\ldots,z_{(p)}) \)

计算边际贡献: \( \phi_j^{m}=\hat{f}(x_{+j})-\hat{f}(x_{-j}) \)

计算 Shapley 值作为平均值: \( \phi_j(x)=\frac{1}{M}\sum_{m=1}^M\phi_j^{m} \)

Shapley值的数学定义与计算

求的目标是: 每个特征如何影响数据点的预测

线性模型例子

一个样本的预测\( \hat{f}(x) \):

$$ \hat{f}(x)=\beta_0+\beta_{1}x_{1}+\ldots+\beta_{p}x_{p} $$

其中 x 是我们要计算贡献的样本。每个xj 是一个特征值,其中 j = 1,...,p, βj是特征 j 对应的权重.

预测\( \hat{f}(x) \)时候的第 j 个特征的贡献φj是:

$$ \phi_j(\hat{f})=\beta_{j}x_j-E(\beta_{j}X_{j})=\beta_{j}x_j-\beta_{j}E(X_{j}) $$

其中E(βjXj)是特征 j 的平均效应估计值。贡献是特征效果(feature effect)减去平均效果(average effect)之间的差值.

现在我们知道每个特征对预测的贡献有多大。如果我们对该个样本的各个特征贡献求和:

$$ \begin{align*}\sum_{j=1}^{p}\phi_j(\hat{f})=&\sum_{j=1}^p(\beta_{j}x_j-E(\beta_{j}X_{j}))\\=&(\beta_0+\sum_{j=1}^p\beta_{j}x_j)-(\beta_0+\sum_{j=1}^{p}E(\beta_{j}X_{j}))\\=&\hat{f}(x)-E(\hat{f}(X))\end{align*} $$

即数据点 x 的预测值减去平均预测值. (特征贡献可能为负)

在其他模型类型中没有类似的权重,因此我们需要不同的解决方案: 合作博弈论(cooperative game theory)

通用方法

Shapley 值通过玩家的值函数val定义, 其中玩家包含在特征集合S中.

其中Shapley值是特征对预测的贡献;价值函数是玩家联盟(特征值)的支付函数(payout function)

特征值的 Shapley 值是其对支出的贡献,对所有可能的特征值组合进行加权求和:

$$ \phi_j(val)=\sum_{S\subseteq\{1,\ldots,p\}\setminus\{j\}}\frac{|S|!\left(p-|S|-1\right)!}{p!}\left(val\left(S\cup\{j\}\right)-val(S)\right) $$

其中 S 是模型使用特征的子集,x 是要解释的样本的特征值的向量,p 是特征个数. 有特征j的值函数与无特征j的值函数作差.

\( val_{x}(S) \)是对集合 S 中特征值的预测, 对于未包含在集合 S 中的特征进行边缘化(marginalize):

$$ val_{x}(S)=\int\hat{f}(x_{1},\ldots,x_{p})d\mathbb{P}_{x\notin{}S}-E_X(\hat{f}(X)) $$

这为不属于 S 的每个特征进行多重积分(multiple integrations)。

一个具体的例子:机器学习模型使用4个特征x1,x2,x3和x4,我们评估由特征值x1和x3组成的联盟S的预测:

$$ val_{x}(S)=val_{x}(\{1,3\})\\ =\int_{\mathbb{R}}\int_{\mathbb{R}}\hat{f}(x_{1},X_{2},x_{3},X_{4})d\mathbb{P}_{X_2X_4}-E_X(\hat{f}(X)) \\ 对X_2X_4的概率分布\mathbb P_{X_2X_4}积分, 即对含X_2X_4的联合概率边缘化(消除变量:特征值X_2X_4的分布的影响) $$

它的形式与线性模型中的特征贡献类似.

但是一般边缘化的积分变量不带P来着

$$ f_{X}(x)=\int_{-\infty}^{+\infty} f(x, y) d y $$

好像能理解作者的意图了

因为单纯特征值X2X4在此处是无意义的, 特征值分布才对f有意义

如下才是错的:

$$ \int_{\mathbb{R}}\int_{\mathbb{R}}\hat{f}(x_{1},X_{2},x_{3},X_{4})dX_2 dX_4-E_X(\hat{f}(X))  $$

SHAP

(SHapley Additive exPlanations)

补充, Shap理论相关的解释可以参考:

边际贡献例子

https://cloud.tencent.com/developer/news/624937

SHAP公式详解

https://zhuanlan.zhihu.com/p/85791430

解释单个样本预测的方法。SHAP基于博弈理论上最优的Shapley值

前置知识: Shapley值和局部模型(LIME)

SHAP与shapley值区别

1. SHAP的作者提出了KernelSHAP, 基于核的估计方法,可作为Shapley值的替代. 灵感来自局部替代模型(local surrogate models)。提出了TreeSHAP,这是一种基于树的模型的有效估计方法。

2. SHAP附带了许多基于Shapley值聚合的全局解释方法

定义

SHAP中, Shapley值解释被表示为一种加法特征归因方法,一种线性模型。这种观点将LIME和Shapley值联系起来。SHAP 将解释定义为:

$$ g(z')=\phi_0+\sum_{j=1}^M\phi_jz_j' $$

其中 g 是解释模型, M 是最大联盟大小, φj∈R 是特征 j 的特征归因(feature attribution for a feature j),即 Shapley 值,

z'∈{0,1}M 是联盟向量(coalition vector, 论文中被称为" simplified features"),z'=1代表特征存在, z'=0代表不存在.

SHAP 描述了以下三个理想的性质

1) 局部精度Local accuracy

2) 缺失Missingness(缺少的特征的归因为零)

3) 一致性Consistency(如果模型发生更改,使得特征值的边际贡献增加或保持不变,则 Shapley 值也会增加或保持不变)

核SHAP

用SHAP kernel计算样本z'k权重

模型尚未在缺少某些特征的特征组合数据上进行训练, 此处"特征值不存在"并不是真正的缺失, 等同于"特征值被数据中的随机特征值替换"

SHAP与 LIME 的区别

回归模型中实例的权重。LIME 根据实例与原始实例的接近程度对实例进行加权。联盟向量中的 0 越多,LIME 中的权重就越小。

SHAP 根据联盟在 Shapley 值估计中获得的权重对采样的实例进行加权。小联盟(zk中只有少数1)和大联盟(即许多1)获得最大的权重。其想法为: 如果我们能够孤立地研究它们的影响,我们就会学到最多的单个特征。如果一个联盟由除一个特征之外的所有特征组成,我们可以了解该特征的总效果(主效应加特征交互作用)。

SHAP kernel定义:

$$ \pi_{x}(z')=\frac{(M-1)}{\binom{M}{|z'|}|z'|(M-|z'|)} $$

其中这里,M 是最大联盟规模,|z′|为样本z' 中当前特征的数量. 具有此核权重的线性回归产生Shapley值.

现在有数据,目标和权重;构建加权线性回归模型所需的一切. 线性回归目标函数:

$$ g(z')=\phi_0+\sum_{j=1}^M\phi_jz_j' $$

训练线性模型 g时的损失函数 L:

$$ L(\hat{f},g,\pi_{x})=\sum_{z'\in{}Z}[\hat{f}(h_x(z'))-g(z')]^2\pi_{x}(z') $$

其中 Z 是训练数据。所求即线性模型优化的平方误差。模型的估计系数φj是沙普利值.

Shapley值组合成全局解释

Shapley值可以组合成全局解释。如果我们为每个样本运行 SHAP,我们会得到一个 Shapley 值矩阵。此矩阵每个数据实例有一行,每个要素有一列。我们可以通过分析此矩阵中的 Shapley 值来解释整个模型

SHAP 特征重要性

SHAP 特征重要性背后的思想很简单:具有较大Shapley 绝对值的特征很重要

由于我们想要全局重要性,因此我们对数据中每个特征的Shapley 绝对值求平均值:

$$ I_j=\frac{1}{n}\sum_{i=1}^n{}|\phi_j^{(i)}| $$

即可根据重要性对特征进行降序排序

SHAP 特征重要性是排列特征重要性的替代方法。这两种重要性度量值之间存在很大差异:排列特征重要性基于模型性能的降低。SHAP基于特征归因的大小。

几种Shapley值相关分析

(除了特征重要性)

SHAP Summary Plot汇总图

SHAP Dependence Plot依赖图

SHAP Interaction Values交互值

Clustering Shapley Valuesy聚类值

优点

快速计算使得计算全局模型解释所需的许多Shapley值成为可能。全局解释方法包括特征重要性、特征依赖性、交互作用、聚类和汇总图。对于SHAP,全局解释与局部解释一致,因为Shapley值是全局解释的"原子单位"。如果将 LIME 用于局部解释,将部分依赖关系图加上置换特征重要性用于全局解释,则缺乏共同的基础。

可用程序

作者实现了SHAP算法的python包shap, 适用于基于树的模型, SHAP被集成到树提升框架xgboost和LightGBM中

机器学习可解释性(Interpretability)概念和近年的发展

参考:

https://zhuanlan.zhihu.com/p/141013178

机器学习可解释性(Interpretability),又或者是XAI(Explainable Artificial Intelligence )

从人类角度理解模型的决策

什么是可解释性

可解释性Interpretability, Explainability。这两个词在一开始的时候其实是经常互换的,指的是一个意思,就是对模型的行为有一个解释。

之后两个名词又有了些细微的差别:

1. Interpretability或者Interpretable AI是使本就透明的模型(白盒)通俗易懂,所有经验水平的用户都可以明白模型的含义;

2. Explainabilily或者Explainable AI则是研究者对于黑盒模型的行为作出人们所能理解的解释。

如何实现可解释性

Q是一个解释性的评价方程,E是实现可解释性的具体方法。整个过程就是让我们寻求这样一种解释方法:该方法使得给定特定的数据(Data)和针对于某种特定的任务(Task),特定经验的人群(Human)拥有对于特定的模型(Model)最大程度上的理解。

可解释性的方法按照训练模型周期的流程划分,即分为模型训练前,训练中,训练后三个阶段。

训练前

了解数据

数据的分析。用到的方法一般有数据可视化,统计分析数据分布(MMD)等

训练中

在训练过程中一边创建可解释性一边训练模型其实就是等同于我们创建的就是可解释的模型,即interpretable的模型,然后基于此,我们追求最好的模型表现。如决策树, 规则集合(Rule Lists/ Rule Sets)等。

训练后

目前该领域做的最多的尝试策略。我们企图通过不同的手段来解释这些既有的黑盒算法,从而来解释这些黑盒模型的决策依据。比较典型的两种方式是敏感性分析(Sensitivity Analysis)和基于梯度的方法(Gradient-based Methods)。

敏感性分析

敏感性分析的出发点就是看你的模型对于哪个数据实例非常敏感。例如一个分类器,如果我们删除掉一个数据点,模型的决策边界有了剧烈的变化,那么我们就说这个数据点非常敏感

算法

LIME这篇文章就是基于这样的思想,对于特定的数据点进行各个特征的扰动,从而给出分类器局部的解释,即局部来看,什么特征是最影响分类器的决策的。同样的还有Koh提出的Influential function,用来解释数据点对SVM的影响程度。

基于梯度的方法

看输入的哪一部分更影响决策。对于一个图片识别模型来说,这种方法就体现在一个saliency map上。也就是将图片的每个像素通过梯度变化的比较,来显示图片的哪些像素是分类器作为分类的依据。

训练后的可解释性实现方法还有很多不同的尝试,例如surrogate models,knowledge distillation,hidden layer的可视化等等

可参考文献

[1]Marco Tulio Ribeiro, Sameer Singh, and Carlos Guestrin. 2016. Why Should I Trust You?: Explaining the Predictions of Any Classifier. (2016), 1135–1144. DOI:https://doi.org/10.1145/2939672.2939778

[2] Koh, Pang Wei, and Percy Liang. "Understanding black-box predictions via influence functions."Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.

[3] Doshi-Velez, Finale, and Been Kim. "Towards a rigorous science of interpretable machine learning."arXiv preprint arXiv:1702.08608(2017).

[4] UX defines chasm between explainable vs. interpretable AI

[5] Adebayo, Julius, et al. "Sanity checks for saliency maps."Advances in Neural Information Processing Systems. 2018.

[6] Doshi-Velez, Finale, and Been Kim. "Considerations for evaluation and generalization in interpretable machine learning."Explainable and Interpretable Models in Computer Vision and Machine Learning. Springer, Cham, 2018. 3-17.APA

[7] Interpretable Machine Learning(ICML 2017 Tutorial) https://vimeo.com/240429018

SVM的解释与可视化

参考:

https://towardsdatascience.com/a-practical-guide-to-interpreting-and-visualising-support-vector-machines-97d2a5b0564e

线性/非线性模型对比

线性 model 的核心都是输入示例和参数/权重向量之间的点积。

与非线性模型相比,线性模型的主要优点是特征权重直接对应于模型中特征的重要性。因此,很容易理解模型"学到了什么"。

在考虑分类问题时,线性模型的缺点是,最终决策边界是直线,平面或超平面,其系数等于模型权重/参数,因此只能对线性可分离的数据进行分类

SVM

支持向量机(SVM)是唯一可以对不可线性分离的数据进行分类的线性模型

通过乘以特征 x1,x2,x3 的ø(x)组合对数据集中进行特征工程, 从理论上讲,我们*可能*最终得到一个空间,在这个空间中,特征是线性可分离的。数据在特征空间中转换为几乎线性.

优化时利用核技巧K(x^i, x^j)替换涉及 ø(x) 的点积;

同样,当我们想要使用模型进行预测时,我们从不显式计算高维空间的权重,而是使用核技巧进行预测:

SVM的解释

线性模型的巨大好处是模型的权重/参数可以被解释为特征的重要性

一旦我们设计了高维或无限维特征集,模型的权重隐含地对应于高维空间, 难以解释

方法: 拟合逻辑回归模型,该模型在给定原始特征的情况下估计标签y为1的概率,其中f(x)是SVM决策函数:

使用最大似然估计来拟合该逻辑回归模型的参数,该技术称为Platt Scaling。

Platt Scaling论文, SVM的概率输出&对比正则化的似然方法:

http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.41.1639&rep=rep1&type=pdf

这如何帮助我们理解SVM的工作原理呢?我们只需拟合模型并在数据集中选择一个点进行评估,然后通过一系列值一次扰动一个特征,同时保持其他特征的固定。我们可以使用它来绘制模型对每个特征的灵敏度图表。

SKlearn具有内置于SVC模型中的此功能,您只需确保probability= true,初始化然后使用clf。predict_proba(X)函数获取概率。

比起评估单个点,对相关点的集合进行采样更好,例如。40个负面例子并按特征平均概率分布,以获得更具代表性的东西

NFL Punt Analytics Kaggle Competition比赛时所做的一个例子,研究各种因素对脑震荡的影响:

采取了所有的负面例子并对它们的概率进行了平均,我已经突出了每个特征中红色区域,其中玩家最有可能受到冲击。如果你有一堆热门编码变量(如玩家角色),那就是将它们聚合成条形图,然后看看特征存在与不存在之间的概率净变化。

性能评估

当您处理涉及SVM的高维模型时,最好能够可视化模型如何对数据点进行分类,而无需纯粹依赖F1分数或ROC AUC等指标

虽然有些人可能会使用诸如主成分分析之类的技术来可视化分类,但这样做会失去特征空间的维度,从而扭曲我们希望实现的视觉效果

Histogram of projects: 绘制训练和测试集的SVM决策函数输出的分布图

在 SKlearn 的 SVC 实现中,决策函数很容易获得,只需调用 decision_function(X)。 为了用颜色对投影直方图进行编码,将需要跟踪数据集标签,如下所示:

直方图 x 轴标识特定训练示例与 SVM 决策边界的距离(由中央虚线指示

SVM 的分离边际等于决策边界两侧的 1,在上面的模型中,有一些泄漏到边距区域,并且确实从一个类交叉到决策边界另一侧的类中。这是因为我们设置超参数regularisation hyper-parameter: C>0 (即软间隔)

训练SVM需要多少数据

一个合理的经验就是训练样例的数量至少为特征数量的10倍。

论文参考文献

[1] Nalbantov, Georgi & C. Bioch, Jan & Groenen, Patrick.(2005). 解决和解释SVM营销中的二元分类问题. 566–573.10.1007/3–540–31314–1_69.

[2] Cherkassky, Vladimir & Dhar, Sauptik.(2010). 高维非线性SVM分类模型的简单解释方法.267–272.

[3] 普拉特,J.(2019)。支持向量机的概率输出以及与正则化似然法的比较。[在线] Citeseer.ist.psu.edu。网址:http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.1639。

[4] Batuwita, Rukshan & Palade, Vasile.(2013). 支持向量机的类不平衡学习方法.10.1002/9781118646106.ch5.

[5] Chawla, N. V., et al. "SMOTE: Synthetic Minority Over-Sampling Technique"。人工智能研究杂志,www.jair.org/index.php/jair/article/view/10302。

归因分析笔记5:机器学习可解释性相关推荐

  1. 归因分析笔记21 可解释的机器学习-李宏毅讲座

    视频链接: https://www.bilibili.com/video/BV1Wv411h7kN/?p=96&vd_source=7259e29498a413d91ab48c04f93298 ...

  2. 归因分析笔记6:SHAP包使用及源码阅读

    突然发现这篇文章居然被百度文库给盗了, 举报侵权还要我自己打印保证函, 最逗的是, 上传保证函图片还要求开启flash, 其心昭然若揭. 目录 安装 使用示例 shap.kmeans shap_val ...

  3. 归因分析笔记13 特征重要度正确性的验证

    目录 SHAP原论文 引言 第五节 计算和用户研究实验 5.2 符合人类直觉 5.3 解释分类差异 引用文献 验证方法总结 数据集选取 Madelon Adult Cross-Domain Indoo ...

  4. 归因分析笔记4:PCA逆变换

    目录 PCA转回原特征 例1 例2 scikit-learn中的PCA PCA的对象 PCA对象的方法 PCA.components_ 总结 PCA过程 PCA转回原特征的公式 手刻逆转换 Sklea ...

  5. Algorithm:网络广告营销领域之归因分析/归因模型的简介、算法、案例应用之详细攻略

    Algorithm:网络广告营销领域之归因分析/归因模型的简介.算法.案例应用之详细攻略 目录 归因分析/归因模型的简介 1.常见几种归因分析模型 2.单触点归因分析VS多触点归因分析 3.归因模型的 ...

  6. 机器学习可解释性工具箱XAI

    http://blog.itpub.net/29829936/viewspace-2600454/ XAI是Github上的一个机器学习可解释性工具箱.XAI包含多种分析和评价数据和模型的工具.XAI ...

  7. 归因分析_归因分析:如何衡量影响? (第2部分,共2部分)

    归因分析 By Lisa Cohen, Ryan Bouchard, Jane Huang, Daniel Yehdego and Siddharth Kumar 由 丽莎·科恩 , 瑞安布沙尔 , ...

  8. 博弈论夏普利值!提高机器学习可解释性的新方法!

    全文共7141字,预计学习时长21分钟 图源:Unsplash 从"约翰•纳什"到"板球世界杯" 还记得<美丽心灵>的男主(也是现实生活中传奇的一代 ...

  9. 多渠道归因分析(Attribution):传统归因(一)

    文章目录 1 归因分析 2 传统归因分析方法 2.1 传统归因分析 2.2.1 最终互动归因模型 2.2.2 最终非直接点击归因模型 2.2.3 最终AD点击归因 2.2.4首次互动归因 2.2.5 ...

最新文章

  1. 人工智能科普|自然语言处理(NLP)
  2. 第十七届全国大学智能车竞赛:第二波芯片申请向你袭来
  3. linux IP局域网监控工具——iptraf
  4. 2018-2019-2 《网络对抗技术》Exp2 后门原理与应用 20165211
  5. 前端学习(2252)推送代码
  6. 分支语句复习 java 9018
  7. hp-ux ftp启动_您可以做12项免费的事情来快速启动UX设计事业
  8. 诚招基于B/S系统开发的.net程序员[上海徐汇区]
  9. php 改变地址栏,php如何修改url
  10. atitit.农历的公式与原理以及农历日期运算
  11. rpm包常见的格式详解
  12. hfss螺旋平面_微波射频网HFSS平面螺旋天线设计
  13. GooFlow获取节点/线信息和自定义节点属性
  14. SQL语句一对多查询
  15. unity球体添加光源_Unity 3D光源-Point Light点光源详解/灯泡、模拟灯光效果教程
  16. COGS 2075. [ZLXOI2015][异次元圣战III]ZLX的陨落
  17. iPhone5充不进电
  18. 如何部署在线团队协作系统kooteam(在线团队协作工具)
  19. python绘画海贼王_入门级项目实战,Python生成海贼王云图!
  20. 服务容错 - Hystrix

热门文章

  1. 22-07-30 西安 MybatisPlus
  2. 利用单缓冲方式进行流水灯模拟
  3. 防御性编程(Defensive Programming)
  4. 【Node.js】深度解析搭建后台服务器-http模块
  5. 多渠道归因分析:python实现马尔可夫链归因(三)
  6. it工种分类_it属于特殊工种吗
  7. 一加8t可以用鸿蒙系统吗,一加8T采用什么系统-一加8T系统有哪些方面的升级
  8. KEBA控制器通过PROFINET连接西门子PLC
  9. Elasticsearch:hanlp 中文分词器
  10. 中国高铁进军海外主打廉快全 将贯通三条战略线路