当前位置: 首页 > news >正文

机器学习中的可解释性

「AI秘籍」系列课程:

  • 人工智能应用数学基础

  • 人工智能Python基础

  • 人工智能基础核心知识

  • 人工智能BI核心知识

  • 人工智能CV核心知识

为什么我们需要了解模型如何进行预测

我们是否应该始终信任表现良好的模型?模型可能会拒绝你的抵押贷款申请或诊断你患有癌症。这些决定的后果是严重的,即使它们是正确的,我们也希望得到解释。人类可以告诉你,你的收入太低,无法获得抵押贷款,或者特定的细胞群可能是恶性的。提供类似解释的模型比仅提供预测的模型更有用。

在这里插入图片描述

通过获得这些解释,我们说我们正在解释一个机器学习模型。在本文的其余部分,我们将更详细地解释可解释性的含义。然后,我们将继续讨论能够解释模型的重要性和好处。然而,仍然存在一些缺点。最后,我们将讨论这些问题,以及为什么在某些情况下,你可能更喜欢不太可解释的模型。

我们所说的可解释性是什么意思?

在之前的一篇文章中,我讨论了模型可解释性的概念以及它与 interpretable 和 explainable 的机器学习的关系。大部分时候,我们可以将 interpretable 理解为可解释模型,将 explainable 理解为解释性模型。其区别就在于前者通常比较简单、透明,人类可以很容易理解模型是如何得出结论的,而后者则需要通过后处理技术和工具来解释复杂和黑箱模型的决策过程,通过解释工具和方法,揭示模型的内部工作机制和决策依据。

总而言之,可解释性是指模型在人类眼中可以被理解的程度。如果人类更容易理解模型 A 如何进行预测,则模型 A 比模型 B 更具可解释性。例如,卷积神经网络的可解释性不如随机森林,而随机森林的可解释性又不如决策树。

考虑到这一点,如果一个模型无需任何其他辅助/技术就能被理解,我们就说它是一个可解释的模型。Interpretable 的模型具有高度可解释性。相比之下,Explainable 的模型太复杂了,如果没有其他技术的帮助就无法理解。我们说这些模型的可解释性很低。我们可以在图 1 中看到这些概念是如何关联的。一般来说,模型可以分为 interpretable 或者 explainable,但也存在人们意见不一致的灰色地带。

在这里插入图片描述

为什么可解释性很重要?

如上所述,我们需要额外的技术,例如[特征重要性](https://machinelearningmastery.com/calculate-feature-importance-with-python/#:~:text=Feature importance refers to techniques,at predicting a target variable.)1或LIME: https://github.com/marcotcr/lime,来了解 explainable 模型的工作原理。实现这些技术可能需要付出很多努力,而且重要的是,它们只能提供模型工作原理的近似值。因此,我们不能完全确定我们理解了 explainable 模型。在比较 interpretable 模型时,我们可能会遇到类似的情况。

在这里插入图片描述

例如,逻辑回归和决策树。这些都不需要额外的技术,但逻辑回归可能仍需要更多努力来解释。我们需要了解 S 型函数以及系数与几率/概率的关系。这种复杂性也可能导致我们的解释错误。一般来说,模型越容易解释,它就越容易理解,我们就越能确定我们的理解是正确的。可解释性很重要,因为它有很多好处。

更容易解释

我们的第一个好处是 interpretable 模型更容易向其他人解释。对于任何主题,我们理解得越好,解释起来就越容易。我们还应该能够用简单的术语来解释它(即不提及技术细节)。在行业中,许多人可能希望对你的模型的工作原理进行简单的解释。这些人不一定具有技术背景或机器学习经验。

例如,假设我们创建了一个模型,可以预测某人是否会提出人寿保险索赔。我们希望使用此模型来自动化公司的人寿保险承保。为了批准该模型,我们的老板需要详细解释其工作原理。不满的客户可能会要求解释为什么他们没有获得人寿保险批准。监管机构甚至可以依法要求提供这样的解释。

在这里插入图片描述

试图向这些人解释神经网络如何进行预测可能会引起很多困惑。由于不确定性,他们甚至可能不会接受这种解释。相比之下,像逻辑回归这样的可解释模型可以用人类的术语来理解。这意味着它们可以用人类的术语来解释。例如,我们可以精确地解释顾客的吸烟习惯在多大程度上增加了他们的死亡概率。

更容易感知、检查和修复错误

上面描述的关系是因果关系(即吸烟导致癌症/死亡)。一般来说,机器学习模型只关心关联。例如,模型可以使用某人的原籍国来预测他们是否患有皮肤癌。但是,就像吸烟一样,我们能说某人的国家导致癌症吗?原因是皮肤癌是由阳光引起的,而有些国家比其他国家阳光更充足。所以我们只能说皮肤癌与某些国家有关。

在这里插入图片描述

华盛顿大学研究人员进行的一项实验很好地说明了关联可能出错的地方。研究人员训练了一个图像识别模型,将动物分类为哈士奇或狼。他们使用 LIME 试图了解他们的模型如何做出预测。在图 2 中,我们可以看到该模型的预测是基于图像背景。如果背景有雪,动物总是被归类为狼。他们基本上建立了一个检测雪的模型。

问题在于狼与雪有关。狼通常会在雪地里出现,而哈士奇则不会。这个例子告诉我们,模型不仅可以做出错误的预测,还可以以错误的方式做出正确的预测。作为数据科学家,我们需要检查我们的模型,以确保它们不会以这种方式进行预测。你的模型越容易解释,就越容易做到这一点。

在这里插入图片描述

更容易确定未来表现

随着时间的推移,模型的预测能力可能会下降。这是因为模型特征和目标变量之间的关系可能会发生变化。例如,由于工资差距,收入目前可能是性别的良好预测指标。随着社会变得更加平等,收入将失去其预测能力。我们需要意识到这些潜在的变化及其对我们模型的影响。对于 explainable 模型来说,这一点更难做到。由于特征的使用方式不太清楚,即使我们知道对单个特征的影响,我们也可能无法判断对整个模型的影响。

更容易从模型中学习

试图在未知事物中寻找意义是人类的天性。机器学习可以帮助我们发现数据中未知的模式。但是,我们无法仅通过查看模型的预测来识别这些模式。如果我们无法解释我们的模型,那么任何教训都会丢失。最终,模型的可解释性越差,从中学习就越困难。

在这里插入图片描述

算法公平性

重要的是,你的模型必须做出公正的决策,这样它们才不会延续任何历史不公正。识别偏见的来源可能很困难。它通常来自模型特征与受保护变量(例如种族或性别)之间的关联。例如,由于南非有强制隔离的历史,种族与某人的所在地\邻里关系密切。位置可以作为种族的代理。使用位置的模型可能会偏向某一种族。

使用 interpretable 模型并不一定意味着你将拥有一个无偏见的模型。这也不意味着更容易确定模型是否公平。这是因为大多数公平性衡量标准(例如假阳性率、不同影响)与模型无关。对于任何模型,它们都很容易计算。使用 interpretable 模型确实可以更轻松地识别和纠正偏见来源。我们知道正在使用哪些特征,并且可以检查其中哪些与受保护的变量相关。

在这里插入图片描述

可解释性的缺点

好的,我们明白了…… interpretable 模型很棒。它们更容易理解、解释和学习。它们还使我们能够更好地感知当前性能、未来性能和模型公平性。然而,可解释性也存在缺点,在某些情况下我们更喜欢 explainable 模型。

容易被操纵

基于机器学习的系统容易受到操纵或欺诈。例如,假设我们有一个自动发放汽车贷款的系统。一个重要特征可能是信用卡数量。客户拥有的卡越多,风险就越大。如果客户知道这一点,他们可以暂时取消所有卡,申请汽车贷款,然后重新申请所有信用卡。

在这里插入图片描述

客户取消信用卡时偿还贷款的概率不会改变。客户操纵模型做出了错误的预测。模型越容易解释,就越透明,越容易操纵。即使模型的内部工作原理是保密的,情况也是如此。特征和目标变量之间的关系通常更简单,因此更容易猜测。

学习内容更少

我们提到,interpretable 模型更容易学习。但另一方面,它们不太可能教会我们新东西。像神经网络这样的 explainable 模型可以自动模拟数据中的交互和非线性关系。通过解释这些模型,我们可以发现这些我们从未知道存在的关系。

相比之下,线性回归等算法只能对线性关系进行建模。要对非线性关系进行建模,我们必须使用特征工程将任何相关变量纳入我们的数据集。这将需要事先了解这些关系,从而违背了解释模型的目的。

领域知识/专业知识要求

构建 interpretable 模型需要大量的领域知识和专业知识。通常,interpretable 模型(如回归)只能对数据中的线性关系进行建模。要对非线性关系进行建模,我们必须执行特征工程。例如,对于医学诊断模型,我们可能希望使用身高和体重来计算 BMI。了解哪些特征具有预测性以及创建哪些特征需要特定领域的领域知识。

你的团队可能不具备这些知识。或者,你可以使用 explainable 模型,该模型将自动对数据中的非线性关系进行建模。这样就无需创建任何新特征;本质上将思考留给了计算机。正如我们上面详细讨论的那样,缺点是,对如何使用这些特征进行预测的理解较差。

在这里插入图片描述

复杂性与准确性之间的权衡

从上面我们可以看出,一般来说,模型越简单,可解释性就越强。因此,为了获得更高的可解释性,可能会以较低的准确度为代价。这是因为,在某些情况下,较简单的模型可能会做出不太准确的预测。这实际上取决于你要解决的问题。例如,使用逻辑回归进行图像识别会得到较差的结果。

对于许多问题,interpretable 模型的表现与 explainable 模型一样好。在之前的文章「特征工程的力量」中,我们将 interpretable 模型 Logistic 回归与 explainable 模型神经网络进行了比较。我们证明,通过对我们的问题进行一些思考并创建新特征,我们可以用 interpretable 模型实现类似的准确性。这是对我们在本文中讨论的一些概念的一个很好的实践。

特征工程的力量

为什么你应该使用逻辑回归来建模非线性决策边界(使用 Python 代码)

参考


  1. How to Calculate Feature Importance With Python, https://machinelearningmastery.com/calculate-feature-importance-with-python/#:~:text=Feature%20importance%20refers%20to%20techniques,at%20predicting%20a%20target%20variable. ↩︎

相关文章:

机器学习中的可解释性

「AI秘籍」系列课程: 人工智能应用数学基础 人工智能Python基础 人工智能基础核心知识 人工智能BI核心知识 人工智能CV核心知识 为什么我们需要了解模型如何进行预测 我们是否应该始终信任表现良好的模型?模型可能会拒绝你的抵押贷款申请或诊断你患…...

上海慕尼黑电子展开展,启明智显携物联网前沿方案亮相

随着科技创新的浪潮不断涌来,上海慕尼黑电子展在万众瞩目中盛大开幕。本次展会汇聚了全球顶尖的电子产品与技术解决方案,成为业界瞩目的焦点。启明智显作为物联网彩屏显示领域的佼佼者携产品亮相展会,为参展者带来了RTOS、LINUX全系列方案及A…...

Centos7离线安装ElasticSearch7.4.2

一、官网下载相关的安装包 ElasticSearch7.4.2: elasticsearch-7.4.2-linux-x86_64.tar.gz 下载中文分词器: elasticsearch-analysis-ik-7.4.2.zip 二、上传解压文件到服务器 上传到目录:/home/data/elasticsearch 解压文件&#xff1…...

深入理解sklearn中的模型参数优化技术

参数优化是机器学习中的关键步骤,它直接影响模型的性能和泛化能力。在sklearn中,参数优化可以通过多种方式实现,包括网格搜索(GridSearchCV)、随机搜索(RandomizedSearchCV)和贝叶斯优化等。本文…...

【Elasticsearch】开源搜索技术的演进与选择:Elasticsearch 与 OpenSearch

开源搜索技术的演进与选择:Elasticsearch 与 OpenSearch 1.历史发展2.OpenSearch 与 Elasticsearch 相同点3.OpenSearch 与 Elasticsearch 不同点3.1 版本大不同3.2 许可证不同3.3 社区不同3.4 功能不同3.5 安全性不同3.6 性能不同3.7 价格不同3.8 两者可相互导入 4…...

欧拉openEuler 22.03 LTS-部署k8sv1.03.1

1.设置ip # vi /etc/sysconfig/network-scripts/ifcfg-ens32 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno #IPV6INITyes #IPV6_AUTOCONFyes #IPV6_DEFROUTEyes #IPV6_FAILURE_FATALno #IPV6_ADDR_GEN_MODEeui64 NAMEens1…...

老年生活照护实训室:为养老服务业输送专业人才

本文探讨了老年生活照护实训室在养老服务业专业人才培养中的关键作用。通过详细阐述实训室的功能、教学实践、对学生能力的培养以及面临的挑战和解决方案,强调了其在提升人才素质、满足行业需求方面的重要性,旨在为养老服务业的可持续发展提供有力的人才…...

go语言中使用WaitGroup和channel实现处理多线程问题

WaitGroup 背景 如果将一个任务分为任意个小任务,并且不关心小任务的执行顺序,并且希望等待全部的小任务执行完成后再去操作后面的逻辑,那我推荐你用sync.WaitGRoup 使用方法 比如,有一个任务需要执行 3 个子任务,…...

Open3D 计算点云的平均密度

目录 一、概述 1.1基于领域密度计算原理 1.2应用 二、代码实现 三、实现效果 2.1点云显示 2.2密度计算结果 一、概述 在点云处理中,点的密度通常表示为某个点周围一定区域内的点的数量。高密度区域表示点云较密集,低密度区域表示点云较稀疏。计算…...

C语言之数据在内存中的存储(1),整形与大小端字节序

目录 前言 一、整形数据在内存中的存储 二、大小端字节序 三、大小端字节序的判断 四、字符型数据在内存中的存储 总结 前言 本文主要讲述整型包括字符型是如何在内存中存储的,涉及到大小端字节序这一概念,还有如何判断大小端,希望对大…...

B端全局导航:左侧还是顶部?不是随随便便,有依据在。

一、什么是全局导航 B端系统的全局导航是指在B端系统中的主要导航菜单,它通常位于系统的顶部或左侧,提供了系统中各个模块和功能的入口。全局导航菜单可以帮助用户快速找到和访问系统中的各个功能模块,提高系统的可用性和用户体验。 全局导航…...

什么是海外仓管理自动化?策略及落地实施步骤指南

作为海外仓的管理者,你每天都面临提高海外仓运营效率、降低成本和满足客户需求的问题。海外仓自动化管理技术为这些问题提供了不错的解决思路,不过和任何新技术一样,从策略到落地实施,都有一个对基础逻辑的认识过程。 今天我们整…...

自定义控件三部曲之绘图篇(六)Paint之函数大汇总、ColorMatrix与滤镜效果、setColorFilter

在自定义控件的绘图篇中,Paint 类是核心的组成部分之一,它控制了在 Canvas 上绘制的内容的各种属性,包括颜色、风格、抗锯齿、透明度等等。下面将详细介绍 Paint 的主要功能以及如何使用 ColorMatrix 和 setColorFilter 来实现滤镜效果。 Pa…...

请写sql满足业务:找到连续登录3天以上的用户

为了找到连续登录超过 3 天的用户,我们可以使用 SQL 窗口函数和递归查询来实现。假设有一个 user_logins 表,包含以下字段: user_id(用户ID)login_date(登录日期) 假设 login_date 是 DATE 类…...

fatal error: apriltag/apriltag.h: No such file or directory 的 参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境: Ubuntu20.04,ROS-Noteic 一、问题描述 自己编译ROS程序的时候遇到如下问题: fatal error: apriltag/apriltag.h: No such file or directory9 | #include &…...

C++继承(一文说懂)

目录 一: 🔥继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化 二:🔥基类和派生类对象赋值转换三:🔥继承中的作用域四:&a…...

卷积神经网络可视化的探索

文章目录 训练LeNet模型下载FashionMNIST数据训练保存模型 卷积神经网络可视化加载模型一个测试图像不同层对图像处理的可视化第一个卷积层的处理第二个卷积层的处理 卷积神经网络是利用图像空间结构的一种深度学习网络架构,图像在经过卷积层、激活层、池化层、全连…...

RxJava学习记录

文章目录 1. 总览1.1 基本原理1.2 导入包和依赖 2. 操作符2.1 创建操作符2.2 转换操作符2.3 组合操作符2.4 功能操作符 1. 总览 1.1 基本原理 参考文献 构建流:每一步操作都会生成一个新的Observable节点(没错,包括ObserveOn和SubscribeOn线程变换操作…...

Spring Boot Vue 毕设系统讲解 3

目录 项目配置类 项目中配置的相关代码 spring Boot 拦截器相关知识 一、基于URL实现的拦截器: 二、基于注解的拦截器 三、把拦截器添加到配置中,相当于SpringMVC时的配置文件干的事儿: 项目配置类 项目中配置的相关代码 首先定义项目认…...

Spring Boot对接大模型:实战价值与技巧

Spring Boot对接大模型:实战价值与技巧 随着大数据和人工智能技术的飞速发展,大模型(Large-scale Models)在各个行业中的应用越来越广泛。为了充分利用这些大模型的能力,我们需要将其与现有的应用框架进行对接。Sprin…...

完美解决NameError: name ‘file‘ is not defined的正确解决方法,亲测有效!!!

完美解决NameError: name ‘file’ is not defined的正确解决方法,亲测有效!!! 亲测有效 完美解决NameError: name file is not defined的正确解决方法,亲测有效!!!报错问题解决思路…...

Witness Table 的由来

“Witness Table” 是 Swift 中的一个术语,源于编译原理和类型系统的概念。它被用来表示一种机制,通过这个机制,编译器可以确保某个类型确实实现了它声明遵循的协议中的所有方法和属性。下面是对这个术语的详细解释: 1. 术语来源…...

Python 3 AI 编程助手

Python 3 AI 编程助手 Python 3 是当前最流行的编程语言之一,特别是在人工智能(AI)领域。Python 3 的语法简洁明了,拥有丰富的库和框架,使其成为开发 AI 应用程序的首选语言。本文将介绍 Python 3 在 AI 编程中的关键特性、常用库以及如何使用 Python 3 构建 AI 应用程序…...

【nginx】nginx的配置文件到底是什么结构,到底怎么写?

背景:我window中下载了一个nginx,想要通过nginx来对本地的两个项目做动态代理,但是没想到下载启动都没遇见什么问题,但是在配置nginx.conf配置文件时,遇见了很多问题,查了好久没查到什么特别有用的内容&…...

基于React 实现井字棋

一、简介 这篇文章会基于React 实现井字棋小游戏功能。 二、效果演示 三、技术实现 import {useEffect, useState} from "react";export default (props) > {return <Board/> }const Board () > {let initialState [[, , ], [, , ], [, , ]];const [s…...

文件的换行符,Windows 的 CRLF 和 Linux 的 LF

文件的换行符&#xff0c;Windows 的 CRLF 和 Linux 的 LF&#xff0c;在开发项目时用哪种比较合适&#xff1f; 在开发项目时选择文件的换行符&#xff08;Windows 的 CRLF 或 Linux 的 LF&#xff09;&#xff0c;通常取决于几个因素&#xff0c;包括项目的运行环境、项目的…...

怎样优化 PostgreSQL 中对日期时间范围的模糊查询?

文章目录 一、问题分析&#xff08;一&#xff09;索引未有效利用&#xff08;二&#xff09;日期时间格式不统一&#xff08;三&#xff09;复杂的查询条件 二、优化策略&#xff08;一&#xff09;使用合适的索引&#xff08;二&#xff09;规范日期时间格式&#xff08;三&a…...

B端设计:任何不顾及用户体验的设计,都是在装样子,花架子

B端设计是指面向企业客户的设计&#xff0c;通常涉及产品、服务或系统的界面和功能设计。与C端设计不同&#xff0c;B端设计更注重实用性和专业性&#xff0c;因为它直接影响企业的效率和利益。 在B端设计中&#xff0c;用户体验同样至关重要。不顾及用户体验的设计只是空洞的表…...

React@16.x(51)路由v5.x(16)- 手动实现文件目录参考

作为前面几篇文章的参考&#xff1a; 实现 Router实现 Route实现 Switch实现 withRouter实现 Link 和 NavLink 以上。...

从零开始读RocketMq源码(二)Message的发送详解

目录 前言 准备 消息发送方式 深入源码 消息发送模式 选择发送方式 同步发送消息 校验消息体 获取Topic订阅信息 高级特性-消息重投 选择消息队列-负载均衡 装载消息体发送消息 压缩消息内容 构造发送message的请求的Header 更新broker故障信息 异步发送消息 …...

wordpress数据量大网站访问/网络推广文案策划

mysql事务总结 事务是什么 ? 事务(transaction)是数据库操作中不可分割的工作单元&#xff0c;事务能够保证一个项目的完整性 。 如何控制事务 在mysql中&#xff0c;事务的自动提交状态是默认开启的。如何查询自动提交的状态呢&#xff1f; mysql> select autocommit…...

wordpress国内访问不了/网络推广整合平台

查看 查看后台命令 ps -au查看全部后台进程 ps -aux查询指定名称的相关进程 命令格式: ps -aux | grep [名称]例如: ps -aux | grep msf操作 杀死命令 命令格式: kill [PID]例如: kill 8080强制杀死进程 kill -KILL [PID]例如: kill -KILL 8080...

毕节市网站建设/网站推广论坛

2019独角兽企业重金招聘Python工程师标准>>> 代码字体 https://github.com/google/fonts/tree/master/ofl/inconsolata 转载于:https://my.oschina.net/raddleoj/blog/884048...

宁波seo博客/seo推广顾问

今日课程大纲&#xff1a; 01 上周内容回顾 02 闭包 03 装饰器 04 可迭代对象 与 迭代器 05 生成器 06 生成器表达式 列表推导式 07 匿名函数 08 内置函数01 上周内容回顾1 #!/usr/bin/env python32 #author:Alnk(李成果)3 """4 深浅copy:5 浅copy&…...

免费行业报告网站/一个公司可以做几个百度推广

在VS中开发工作流&#xff1a;总结原文地址&#xff1a;http://blogs.msdn.com/sharepoint/archive/2006/12/01/developing-workflows-in-vs-part-7-summary-and-final-thoughts.aspx你可能有一些被吓到了&#xff0c;有这么多的内容要想到和理解。但是不要担心&#xff0c;就像…...

代理网站下载/网站排名工具

最近老大有个需求&#xff0c;就是想把一些服务监控起来&#xff0c;发生故障并能够自动重启&#xff0c;这里我就拿ftp练了一下手 1.修改zabbix系统自带的模板 注意&#xff1a;key 这里可以使用监控服务的方式&#xff0c;也可以使用监控端口的方式net.tcp.listen[port] 2.创…...