如何解释任何机器学习预测

将黑盒模型转换为玻璃盒——Local Interpretable Model-agnostic Explanations (LIME) 是 Ribeiro 等人开发的 Python 项目。 [1] 解释任何监督机器学习 (ML) 模型的预测。大多数机器学习算法都是黑盒;我们无法正确理解他们如何执行特定的预测。这是 ML 的一个巨大缺点……

人工智能 |可解释性 |数据科学

如何解释任何机器学习预测

将黑盒模型转变为玻璃盒

如何解释任何机器学习预测

Local Interpretable Model-agnostic Explanations (LIME) 是由 Ribeiro 等人开发的 Python 项目。 [1] 解释任何监督机器学习 (ML) 模型的预测。

大多数机器学习算法都是黑盒;我们无法正确理解他们如何执行特定的预测。这是 ML 的一个巨大缺点,随着人工智能 (AI) 变得越来越普遍,理解“为什么?”的重要性与日俱增。

在这篇文章中,我们将讨论 LIME 项目的运作方式和原因。我们还将通过一个使用真实数据集的示例来进一步了解 LIME 的结果。

了解机器学习的基础知识

在我们能够理解并真正体会到 LIME 的神奇之处之前,我们必须先了解 ML 的基本直觉。

任何有监督的问题都可以概括为两个主要特征:𝒙(我们的特征)和𝑦(我们的目标)。我们想要建立一个模型 ƒ(𝒙) 以在我们提供一些样本 𝒙’ 时生成预测 𝑦’。

在训练期间,ML 模型不断调整映射函数 ƒ(𝒙) 的权重——这使得模型成为一个黑盒子,因为了解这些权重如何变化并非易事。

理解任何 ML 模型的预测归结为理解所述模型背后的映射函数。

了解模型可解释性类型

模型可解释性主要有两种类型:

1. 全局解释

给定模型ƒ,使用整个训练数据集生成全局解释。全局解释显示了模型的整体特征重要性。对于每个特征,全局解释通常会回答这个问题:“总的来说,这个特征对 ƒ 有多重要?”

2. 局部解释

局部解释直接基于单一观察。使用局部解释,我们试图理解为什么 ƒ 为特定样本生成特定预测。对于任何给定的样本,本地解释通常会回答这个问题:“哪些特征对这个特定的预测影响最大?”

在这篇文章的其余部分,我们将关注和讨论本地解释。

LIME 的直觉

LIME 尝试通过采样实例(称为输入扰动)来逼近模型的映射函数 ƒ(𝒙)。用外行的话来说,LIME 会生成一堆合成样本 𝒙’,它们非常接近原始实例 𝒙。 LIME 然后将 𝒙’ 传递给原始模型 ƒ 并记录各自的预测。此过程使 LIME 能够确定不同的输入波动如何影响 ƒ。在过程结束时,对于给定的样本 𝒙,LIME 将能够通过确定每个特征的个体影响来近似预测 ƒ。因此,LIME 能够通过了解哪些特征对预测的贡献最大来解释特定的预测。

总之

  • LIME 示例实例𝒙’
  • LIME 使用 𝒙’ 使用 ƒ(𝒙) 生成一组预测 𝑦’
  • LIME 将预测与原始预测的接近程度进行比较,并对它们进行加权。
  • LIME 使用权重来确定哪些特征对该个体预测影响最大。

潜水更深

如前所述,LIME 的整个想法是尝试解释 ƒ(𝒙)。 LIME 通过代理模型实现了这一点。代理模型 g 是用于解释另一种预测算法的结果的任何模型。通常,g 将是一个更简单且更易于解释的模型(如决策树或线性模型)。我们可以将代理模型集正式定义为 G,使得 g ∈ G。

但是,LIME 如何选择使用哪个 g 来解释原始模型?

LIME 考虑了两个主要的决定因素:

*警告:听起来很聪明的话*

  1. 局部忠实度,用 ​​L(f, g, π) 表示 — 也称为保真度函数
  2. 复杂度,用 Ω(g) 表示

什么是地方忠诚?

我们有两个部分:

  • Local

我们已经讨论过了。局部简单意味着我们一次只关注一个特定的预测,而不是整体考虑 ƒ。

  • Faithfulness

正如暗示的那样,这是我们选择的 g 能够遵循原始模型 ƒ 的准确度的度量。 g 的预测与 ƒ 的预测越接近,g 就越忠实于 ƒ。我们将两个预测的“接近度”称为接近度,在数学上定义为 π。

很简单,对吧?

什么是复杂性?

向 5 岁的孩子解释 2+2 比解释 ∫ tan(𝒙) 更容易。为什么?因为2+2背后的“映射功能”比积分要简单得多。

g 背后的主要动机是解释 ƒ。因此,g 必须是可解释的。 g越简单,它就越容易解释。

复杂性的衡量方式不同,具体取决于所评估模型的类型。例如,在决策树中,复杂性可以直接由树的深度给出(树越深,越复杂且难以解释)。在线性模型中,复杂性可能以非零权重的数量来衡量。

LIME 试图将复杂性降至最低,并最大限度地提高忠诚度。

如何解释任何机器学习预测

保真度函数 L(f, g, π) 可以由任何损失函数定义。 LIME 使用平方损失距离函数。损失函数也会根据要解释的模型类型而变化(图像分类器需要与表格分类器不同的损失函数)。

这主要是 LIME 项目的要点。还有更多内容,所以如果您喜欢这篇文章,我强烈建议您阅读 [1]。

现在,让我们用一些 Python 示例来动手吧!

在 Python 中工作的 LIME 示例

首先,我们需要使用 pip 安装 LIME。您可以在 [2] 中找到 LIME 的源代码。

pip install lime

我们将使用 Scikit-learn [3] 提供给我们的 iris 数据集作为示例来演示包的用法。

首先,我们需要导入我们需要的不同包。

# imports
import numpy as np
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split

我们还可以按如下方式导入 LIME:

from lime.lime_tabular import LimeTabularExplainer

我们的问题有一个有监督的表格结构。因此,我们需要导入 LimeTabularExplainer。此外,在使用 LIME 时,设置 NumPy 的随机种子可能是一个好主意。 LIME 利用 NumPy 作为其后端;因此,将随机种子设置为我们选择的数量将确保我们可以获得可重复的实验。我们可以使用以下方法设置随机种子:

np.random.seed(1)

然后,我们创建一个辅助函数,接收我们的训练和测试集,训练一个基本的 RandomForestClassifier,并计算出它的准确度分数。这里的目标不是建立最稳健的模型,而是为我们的解释获得一个基本模型。

我们从 Scikit-learn 中提取数据集,对其进行拆分,然后按如下方式训练我们的模型:

接下来,我们需要生成我们的 LIME 解释器函数。这里我们需要指定训练数据、特征名称、类标签,以及是否离散化连续变量。

现在我们可以为我们想要的任何预测生成解释。在这一步,我们可以控制要显示的最有影响力的特征的数量。这可以是介于 1 和数据集中特征数之间的任何整数值。

为三个不同的预测运行最后一段代码,我们得到:

如何解释任何机器学习预测如何解释任何机器学习预测如何解释任何机器学习预测

在可视化的左侧,我们得到每个类别的预测概率分布。在右侧,我们得到了对该预测最有影响的特征及其各自的值(我们在初始化上面的解释器函数时指定了这一点)。在图的中心,我们得到每个影响特征的条件(基于扰动的输入)及其强度(即对模型的贡献/影响)。

例如,在第一次预测中,模型以 99% 的置信度将样本预测为 Versicolor。这个分数的 24% 是因为花瓣长度大于 1.58 厘米,另外 14% 的影响是因为花瓣宽度大于 0.3 厘米。

Conclusion

就是这样!这个包的美妙之处在于它严格遵循我们刚刚介绍的“代码模板”。即使在解释图像或文本分类器时。唯一不同的部分是导入所需的解释器(在我们的例子中,我们使用 LimeTabularExplainer,因为我们想解释表格数据)。

要记住的一个重要方面是解释器函数只能与它试图近似的原始模型一样好。因此,在野外时,请始终确保使用交叉验证对模型进行稳健训练并进行适当验证。再说一次,LIME 也可用于评估任何给定 ML 模型的稳健性。

LIME 是对可解释 AI 世界的精彩介绍。 LIME 和领域都在不断增长和成熟,这使得现在是开始将 XAI 纳入数据建模管道的最佳时机。

你喜欢这篇文章吗?如果是,也许您可​​能想考虑成为支持我和您其他最喜欢的作家的会员。

References

[1] Ribeiro, M.T.、Singh, S. 和 Guestrin, C.,2016 年 8 月。 “我凭什么相信你?”解释任何分类器的预测。在第 22 届 ACM SIGKDD 知识发现和数据挖掘国际会议论文集中(第 1135-1144 页)。

[2] https://github.com/marcotcr/lime[0]

[3] https://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html[0]

想取得联系?

我很想听听你对这个话题的想法,或者任何关于人工智能的想法。如果您希望取得联系,请发送电子邮件至 davidfarrugia53@gmail.com。

领英——推特[0][1]

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年4月24日
下一篇 2022年4月24日

相关推荐