介绍

可解释的人工智能(XAI)是机器学习(ML)内的新兴领域。bob官方网站近年来,最先进的艺术品有相当大的进展。

bob官方网站机器学习模型通常需要被审计偏见和不公平。有效地解释算法的决定是该过程的一个组成部分。模型说明对ML模型需要使用LOOM循环操作的情况非常相关。

在本博客文章中,我们将专注于欺诈检测。一个特定用例是“付款欺诈”,罪犯试图使用被盗的信用卡来购买Wayfair的物品。我们将作为一个受监督的二进制分类问题对待这一点,其中订单是欺诈性的。

在实践中,我们发现三个桶中的分开订单提供了更好的结果。然后,该模型不确定的少数订单将被发送给手动调查和评估订单风险的专业人类审阅者。在这些情况下,模型解释其预测的能力对于支持人类评论者的法医过程至关重要。

图1:欺诈检测决策过程

在本博客文章中,我们将概述监督机器学习模型的解释/解释方法,并深入潜入其欺诈检测的应用。bob官方网站我们将讨论不同的解释方法,如置换重要性,石灰和Shav,并了解它们在特定应用程序中的不同应用程序与欺诈性订单的玩具数据集。

不同方法概述

bob官方网站机器学习(ML)算法往往是高维,非线性和复杂的。例如,神经网络通常包含数百万或甚至数十亿个参数。了解为什么ML算法做出某种决定可能是一个具有挑战性的任务。许多从业者将复杂的算法视为黑匣子。ML的可解释领域旨在减轻该任务并开辟那个黑匣子。

本地和全球解释

首先,我们需要区分两种类型的解释性:本地(或个人)解释和全球(或一般)解释。全球解释旨在了解模型并揭示输入特征的重要性所有数据点。另一方面,本地说明解释了为什么ML算法为单个数据点做出了某种决定。对于欺诈检测,我们通常对本地解释更感兴趣,因为这些是手动评论者将用于基于其决定的人。

可解释的模型

获得解释的最简单方法是使用简单的模型。例如,让我们考虑线性或逻辑回归。这些算法的预测被建模为输入的加权和。我们可以简单地查看与每个输入功能相关的权重,并根据权重的幅度来解释它们的重要性。可解释模型的另一个例子是决策树或随机林。获取决策树的本地解释很简单:从根节点开始,我们下降树。每个节点处的条件可以用作最终预测的解释。我们将在此博客文章的后期部分看到一个例子。对于全局解释,我们可以测量每个节点减少数据次数的差异(或基尼杂质)到达该节点的概率。K-CORMATE邻居是另一种自然提供本地解释的算法。 We can explain a sample of interest, by analyzing its k-most similar neighbors.

这些算法的主要缺点是它们对大多数实际问题并不是很准确。预测性能和有效解释结果之间似乎是一种固有的权衡。在以下部分中,我们将探索用于复杂算法的模型 - 不可知方法,例如神经网络。

排列重要性

基于置换的解释是简单的。首先,我们测量样本或采样集合的基线参考分数。该分数可以是ML模型的正确类别的误差或预测概率。然后,我们扰乱了输入功能,看看它如何影响模型的输出。一些扰动将导致比其他损失更大。我们可以根据引起的扰动错误的幅度进行排名。

破旧的“重要”功能的值应导致性能显着下降。如果在扰乱功能后模型错误保持不变,我们可以考虑此功能“不重要”。

置换重要性的一个缺点是相关特征可以降低重要性。说我们使用price_of_order.most_expiend_product_price.作为欺诈检测算法的输入。这些功能将是高度相关的,并且可能删除其中一个不会对模型性能产生重大影响。如果一次允许一个特征,则简单的置换算法不会捕获这些功能的真正重要性。

酸橙

Lime [2]是局部可解释模型 - 不可知的解释的简短。这种方法仅解释了个体预测。这个想法是以下内容:我们希望了解为什么一个黑匣子分类器F对数据点进行了一定的预测X。石灰需要X并生成包含许多不同变体(或扰动)的新数据集X。这些人造样品表示为Z.一世一世{1,......,N}。黑箱预测FZ.一世获得。然后用石灰训练一个新的,更简单,可解释的模型Z.一世作为输入和F(Z.一世作为目标。每个人工样本都是通过它对原始数据点的近距离称重X我们评估我们的模型。我们已经看到了上述部分中可解释模型的例子。最后一步是解释X通过观察可解释模型的重量(也称为“本地代理”模型)。从原始石灰纸[2]的算法可以在下面找到。

应用于图像的示例本地说明可以在图2中找到。我们还可以培训“全球代理”模型来获取全球预测。这个想法非常相似:我们训练一个简单的模型来近似黑匣子模型的预测。关键差异是我们还可以使用许多不同的数据点进行培训。

图2:图像识别域中类“CAT”的示例解释。大多数相关像素以绿色突出显示,而对分类决定的贡献贡献的像素以红色突出显示。拍摄的图像:https://github.com/marcotcr/lime

形状

在合立的博弈论中,福利价值[3]是对在联盟工作的演员的进步和损失相当分配的一种方式。当演员的贡献不平等时,这一概念主要使用。对于机器学习的情况,我们可以将样bob官方网站本的特征值视为“演员”和最终预测概率作为“增益和损失”。

假设我们想要计算功能的重要性一世通过福利价值观。首先,我们需要获得所有可能的特征联盟,需要在没有功能的情况下进行评估一世。在实践中,随着特征的数量的增长,这通常非常昂贵。在这些情况下,通过随机采样可能的联盟来近似福利值。

Shap [4]代表福利添加剂解释。内核Shap是Shap的模型不可知的实现。该方法将福利局部代理模型的福利价值观与诸如石灰等型号相结合。如果我们需要评估模型的预测F在实事X,我们会采样K.联盟(或K.变化X)。然后我们将获得那些联盟的黑匣子模型预测,并将加权线性模型适合此数据。这个过程似乎与石灰非常相似。

然而,内核形状和石灰之间存在一些关键差异。例如,实例的称量在概念上不同。石灰通过径向基函数内核计算相似性。成像基于联盟福利价值估计权重实例。这是通过[4]中描述的Shap Kernel实现的。

Shap在基于树的模型中也具有快速实现[5]。这使得可以使用Shaz以更快的全局解释。Shap显示与石灰相比更一致的本地解释。两种方法的优点和缺点在[1]中是良好的描述。

玩具例子

在本节中,我们将说明在实践中如何工作。我们人为地生成了1000个订单的玩具数据集。假设对于每个订单,我们提供以下信息:

  • 索引:订单的唯一标识符。
  • Ageofactdords:自帐户创建以来已经过了多少天。
  • BillingshippingCityMatch:二进制功能,指示计费地址城市是否与送货地址城市匹配。
  • 具有propriousorder:二进制指示灯显示客户是否有上一个订单。
  • 2FA:二进制指示灯显示客户是否使用了2因素身份验证。
  • Hatcolor:客户的帽子颜色。
  • 鞋子:客户鞋尺寸。
  • Favouritecoffee:最喜欢的咖啡馆。

我们标记了没有2FA的订单,没有以前的订单历史,没有计费/航运城市比赛,并且在实验的缘故中占“欺诈”的账户年龄。您可能会注意到,我们使用的最后三个功能是冗余的,不会影响欺诈标签。数据集的结构如图3所示。良好的解释方法应该能够拾取此信息并将重要性值分配到这些功能等于0。

图3:玩具数据集的结构

我们培训了一个决策树分类器,使用该算法的SK-Gress实现来解决这个二进制分类问题。培训后,该模型在测试集上实现了100%的精度。然而,我们更感兴趣的是从该示例模型中获得的特征重要性。

默认决策树解释

首先,我们获取sk-seather提供的默认特征重要性值。全局特征重要性被定义为该功能带来的模型预测质量的总体改进。在图4中,我们可以看到,尽管在理论上,前4个功能同样重要,但默认说明将非常不同的重要性分配给另一个功能。冗余功能被正确分配0重要性。

图4:基于GINI杂质的特征重要性

要了解为什么我们需要查看图5所示的决策树的每个节点的基尼索引。

图5:决策树分类器

此外,如果我们对本地解释感兴趣,我们可以简单地下降决策树并按照节点逻辑遵循。例如,让我们解释order_id = 10000的命令的ML决定,如图3所示.2FA等于0,但ageofAccumondays等于652,因此订单被归类为非欺诈因为客户帐户差不多2年前创建。

排列说明

我们现在看看由SK-Seather实现的置换特征重要性,对于此决策树分类器。在图6中,我们显示了我们分类器的全局特征重要性。我们可以立即发现重要性在四个主要功能之间几乎同样分布,而不是默认的Gini重要性分布,其中这些功能不是'同样重要的'。

但是,SK学习权限度实现不适用于本地解释。在下一节中,我们将看到用石灰获得的本地解释的示例以及全局和本地解释的Shap示例。

图6:置换特征重要性

石灰解释

我们获得了两种本地石灰解释:一个用于欺诈性订单,一个安全订单。解释如图7所示。我们为此目的使用了石灰表格解释器。输入特征可以产生积极的影响(它们有助于归类为“欺诈”的订单)或负面影响(他们为归类为“非欺诈”的订单有贡献)。我们可以看到,在某些情况下,某些功能可以对“欺诈”标签(橙色)产生积极影响,而在其他情况下,它们对“欺诈”标签(蓝色)产生负面影响。对于“欺诈性”案例,四个重要功能对预测标签有贡献,因此订单被正确归类为“欺诈”。

一个有趣的观察是,FavouriteCoffee和HatColor对非欺诈性示例具有非零点重要性,而Hatcolor对欺诈性示例具有非零重要性。

图7:Lime个人解释安全订单(顶部)和欺诈订单(底部)

形状解释

我们现在转向Shap解释。为此,我们可以使用Shap Open Source库提供的TreeExplainer来解释我们的决策树。bob网下载TreeExplainer [5]是树木Shap方法的高速实现。这使得可以使用Shaz以更快的全局解释。图8中示出了一个示例全局形状说明。

图8:Shap全局特征重要性

使用Shap,我们还可以相对较快地获得本地解释。同样,重要特征中的重要性类似。与石灰不同,Shap正确地将0重视到冗余功能。我们可以在图9中看到用于欺诈和非欺诈订单的个人解释的示例。

图9:欺诈性和非欺诈性订单的本地解释示例。

概要

解释方法对于ML决策的信任和透明度至关重要。近年来,在解释性领域已经有大量的工作。在这个博客文章中,我们涵盖了一些基本的解释方法,例如排列重要性,以及一些更先进的常用方法,如石灰和剪切。我们在在人工欺诈数据集训练的简单决策树分类器上应用了这些解释方法。

最终,没有完美的解释方法。每种方法都有其优缺点。理想情况下,解释方法的集合将产生最值得信赖的结果。对于希望全面概览进入该领域的读者,我强烈建议通过Christoph Molnar阅读“可解释的机器学习”[1]。bob官方网站

您可以找到一个Colab笔记本,其中我们人工创建了这个数据集,培训了模型并获得了多个不同的解释这里

参考资料

[1] Molnar,Christoph。“可解释的机器学习。bob官方网站制作黑匣子型号的指南可解释“,2019年。https://christophm.github.io/interprodable-ml-book//

[2] Ribeiro,Marco Tulio,Sameer Singh和Carlos Guestrin。“我为什么要相信你?:解释任何分类器的预测。”第22届ACM SIGKDD国际知识发现国际会议和数据挖掘的诉讼程序。ACM(2016)。

[3]福利,劳埃德S.“对N-Person Games的价值”。对游戏理论的贡献2.28(1953):307-317。

[4] Lundberg,Scott M.和Su-In Lee。“解释模型预测的统一方法。”神经信息处理系统的进步。2017年。

[5] Lundberg,S.M.,Esion,G.,Chen,H.等。“从当地解释到全球理解,可解释为树木。”NAT Mach Intell 2,56-67(2020)。

bob网下载开源库

SK学习:https://github.com/scikit-learn/scikit-learn.

酸橙:https://github.com/marcotcr/lime.

Shap:https://github.com/slundberg/shap.