什么是模型无关方法?

news2024/11/17 18:43:03

「AI秘籍」系列课程:

  • 人工智能应用数学基础
  • 人工智能Python基础
  • 人工智能基础核心知识
  • 人工智能BI核心知识
  • 人工智能CV核心知识
  • AI 进阶:企业项目实战

可直接在橱窗里购买,或者到文末领取优惠后购买:

可以与任何模型一起使用的所有强大方法

一位[不可知论者]1思考上帝的存在。值得庆幸的是,机器学习还没有达到那种程度。当我们谈论不可知论方法时,我们指的是可以用于任何模型的方法。我们将详细阐述这一定义,重点放在可解释性的不可知论方法上。我们将讨论这些可解释性方法的不同分类。即全局解释与局部解释以及排列与替代模型。有些方法不是与模型无关的。我们将以讨论这些方法作为结束。

在这里插入图片描述

模型无关方法

模型无关方法可以应用于任何模型。使用模型无关方法时,模型训练完成后,可以将其视为黑盒。换句话说,该方法不需要我们研究模型的内部工作原理。如果我们想在其他模型上使用该方法,我们只需将它们换掉即可。但是方法要做什么呢?

首先,大多数评估指标与模型无关。以图 1 中的准确度计算为例。我们首先使用模型对测试集进行预测。准确度是正确预测的实际值的百分比。要进行此计算,我们只需将测试数据与预测值进行比较。有些模型可能比其他模型更准确,但计算结果相同。其他评估指标(如准确率、召回率和 MSE)都与模型无关。

图 1:准确度计算概览

模型无关评估方法在模型选择方面提供了灵活性。你不必为每种模型类型开发不同的评估框架。这还允许你使用相同的指标比较许多模型。当你想要比较模型性能时,这种一致性至关重要。

可解释的机器学习

在实践中,将评估指标称为模型不可知论并不常见。当我们谈论可解释的 ML 或可解释的 AI 方法时,这个术语最为突出。这些方法用于了解模型如何进行预测。我们将讨论这些方法的一些示例以及如何对它们进行分类/分组。在本节结束时,我们将讨论一些方法在理论上是不可知论的,但在实践中并非总是如此。

可解释的 ML 方法分类概述

全局方法与本地方法

我们对模型不可知论方法进行分类的第一种方法是根据它们试图解释的内容。局部解释旨在了解个体预测是如何做出的。这就是每个模型特征如何改变预测。我们可以使用全局解释来解释模型如何整体地进行预测。这意味着我们只能对所有预测的趋势做出断言。

为了更好地理解这一点,我们在图 2 中提供了一个部分依赖图 (PDP) 的示例。这是一种常见的全局可解释性方法。此图是用于预测二手车价格的模型创建的。在 x 轴上,我们列出了对汽车进行的维修次数。y 轴(部分 yhat)给出了平均预测价格。由此我们可以看出,汽车价格往往与维修次数呈非线性关系。但是,我们不能对每辆汽车都说同样的话。

在这里插入图片描述

我们不会详细介绍如何创建这个 PDP。如果你感兴趣,以后我会专门写一篇相关文章《查找并可视化非线性关系》2,文中我打算逐步指导你如何创建图表。并且还会讨论其他全局模型无关方法。那就是相互信息和特征重要性。

使用部分依赖图 (PDP)、互信息和特征重要性分析非线性关系

对于局部解释,SHAP 是一种常用方法。在图 3 中,你可以看到单个预测的 SHAP 瀑布图。这是来自用于预测鲍鱼壳环数的模型。在这里,我们将模型的预测 f(x) 与平均预测 E[f(x)] 进行比较。我们可以看到每个特征对预测的贡献。例如,去壳重量的值使预测的环数增加了 1.81。

在这里插入图片描述

因此,我们可以看到 SHAP 是如何用来解释单个预测的。我们还可以汇总 SHAP 值,以了解模型如何整体地进行预测。从这个意义上讲,局部解释和全局解释之间的界限可能会变得模糊。你可以在图 4 中的蜂群图中看到一个示例。在这里,我们绘制了模型做出的所有预测的 SHAP 值。

在这里插入图片描述

蜂群图只是我们聚合 SHAP 值的方法之一。

排列模型与替代模型

我们可以对解释方法进行分类的第二种方法是根据它们的计算方式。置换方法涉及更改输入数据并测量模型预测的变化。这就是上面的 PDP 的创建方式。对于每辆汽车,我们更改/置换维修特征值并记录模型预测。然后我们取每个维修值的平均预测。其他方法,如 ICE 图、特征重要性和 SHAP 都是置换方法。

另一种方法是使用替代模型,你可以在图 5 中看到概述。在这里,首先训练一个模型并用于进行预测。然后使用原始模型的预测来训练替代模型。这代替了目标变量。重要的是,替代模型是一种固有可解释的模型。这些模型,如线性回归或决策树,不需要 SHAP/PDP 之类的技术。可以通过直接查看模型的结构或参数来解释它们。

图 5:替代模型方法概述

最终,我们可以通过直接解释替代模型来了解原始模型的预测。如果我们对所有预测都这样做,它就被称为全局替代模型。与其他全局方法一样,这些方法可以帮助我们整体理解原始模型。其他方法,如 LIME,可用于创建局部替代模型。它们结合了排列和替代模型来训练单个预测的模型。

原则上与实践上的模型无关

我们讨论的所有方法在理论上都是与模型无关的。要实际使用它们,我们需要实现它们。实现不一定支持所有建模包。例如,Friedman 的 h 统计量是一种用于突出显示模型中重要交互的方法。Python 中没有此方法的与模型无关的实现。据我所知,只有一个针对 scikit-learn 梯度提升模型的实现3

说到 SHAP,另一个需要考虑的问题是,存在不同的近似值方法。KernelSHAP 是一种真正的模型无关方法。但是,它比 TreeSHAP 慢得多。缺点是 TreeSHAP 只能与基于树的算法一起使用。这意味着,如果你想节省时间,你需要将自己限制在这些算法上。

使用 SHAP,还可以扩展该方法。也就是说,特征的贡献可以分解为其主要效应和交互效应。这使我们能够分析数据中的交互作用。但是,此方法的实现仅适用于基于树的算法。这是因为我们上面提到的计算成本。KernelSHAP 需要很长时间才能近似主要效应和交互效应。

非不可知论方法

不可知论方法的好处在于它们很常见。但仍有一些方法只能用于特定模型。首先,我们上面提到了固有可解释的模型。这些可以直接解释。然而,解释它们的确切方式将取决于你使用的模型。

我们在以前的文章《使用 Python 创建你的第一个情绪分析模型》中有一个示例。我们在这里建立了一个模型来预测推文的情绪。这是使用词袋方法和支持向量机 (SVM) 完成的。在训练 SVM 的过程中,训练集中的每个 N-gram 都被赋予权重。我们通过查看这些权重来解释 SVM。

你可以在图 6 中看到这些权重的一些示例。具有正权重的 N-gram 与积极情绪相关。换句话说,如果推文包含其中一个词,我们更有可能预测积极情绪。同样,具有负权重的词与消极情绪相关。也存在没有相关情绪的词的情况。

在这里插入图片描述

以这种方式解释 SVM 是一种非不可知论方法。我们无法以这种方式解释决策树或随机森林等模型。这是因为它们没有参数权重。同样,它不适用于神经网络。这些模型可能有参数权重,但它们太复杂了,无法以这种方式可视化。

对于本质上不可解释的模型,还开发了非不可知方法。由于深度学习的成功,这在神经网络中最为常见。其中一些方法包括逐像素分解和deepLIFT4。最终,这些方法只能用于神经网络。在某些情况下,它们只能用于特定的神经网络架构。

希望这篇文章对你有所帮助!你还可以阅读我的其他文章,或者查看有关企业 AI 实战项目的教程,相信会让你拥有更多收获。

AI企业项目实战课优惠二维码

参考

M.T. Ribeiro, S. Singh, and C. Guestrin, Model-agnostic interpretability of machine learning (2016) https://arxiv.org/abs/1606.05386

C. Molnar, Interpretable Machine Learning (2021) https://christophm.github.io/interpretable-ml-book/shap.html

Hennie de Harder Model-Agnostic Methods for Interpreting any Machine Learning Model (2020) https://towardsdatascience.com/model-agnostic-methods-for-interpreting-any-machine-learning-model-4f10787ef504


  1. 不可知论,维基百科, https://zh.wikipedia.org/wiki/%E4%B8%8D%E5%8F%AF%E7%9F%A5%E8%AE%BA ↩︎

  2. 《查找并可视化非线性关系》,日后计划 ↩︎

  3. 梯度提升模型的实现, https://pypi.org/project/sklearn-gbmi/ ↩︎

  4. DeepLIFT, https://github.com/kundajelab/deeplift ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

破局产品同质化:解锁3D交互式营销新纪元!

近年来,随着数字体验经济的蓬勃发展,3D交互式营销作为一种创新手段迅速崛起,它巧妙地解决了传统产品展示中普遍存在的缺乏差异性和互动性的问题,使您的产品在激烈的市场竞争中独树一帜,脱颖而出。 若您正面临产品营销…

抖音直播弹幕数据逆向:websocket和JS注入

🔍 思路与步骤详解 🕵️‍♂️ 思路介绍 首先,我们通过抓包工具进入的直播间,捕获其网络通信数据,重点关注WebSocket连接。发现直播弹幕数据通过WebSocket传输,这种方式比传统的HTTP更适合实时数据的传输。…

昇思25天学习打卡营第24天 | Pix2Pix实现图像转换

昇思25天学习打卡营第24天 | Pix2Pix实现图像转换 文章目录 昇思25天学习打卡营第24天 | Pix2Pix实现图像转换Pix2Pix模型cGANCGAN的损失函数 数据网络构建生成器判别器Pix2Pix网络 总结打卡 Pix2Pix模型 Pix2Pix是基于条件生成对抗网络(cGAN, Condition Generativ…

如何在测试中保护用户隐私!

在当今数据驱动的时代,用户隐私保护成为了企业和开发团队关注的焦点。在软件测试过程中,处理真实用户数据时保护隐私尤为重要。本文将介绍如何在测试中保护用户隐私,并提供具体的方案和实战演练。 用户隐私保护的重要性 用户隐私保护不仅是法…

Qt自定义带前后缀图标的PushButton

写在前面 Qt提供QPushButton不满足带前后缀图标的需求,因此考虑自定义实现带前后缀图标的PushButton,方便后续快速使用。 效果如下: 同时可设置前后缀图标和文本之间间隙: 代码实现 通过前文介绍的Qt样式表底层实现 可以得…

linux ftp操作记录

一.ftp 创建用户 passwd: user ftpuser does not exist 如果你遇到 passwd: user ftpuser does not exist 的错误,这意味着系统中不存在名为 ftpuser 的用户。你需要首先确认FTP用户是否是系统用户,还是FTP服务器软件(如Pure-FTPd&#xff…

类和对象:完结

1.再深构造函数 • 之前我们实现构造函数时,初始化成员变量主要使⽤函数体内赋值,构造函数初始化还有⼀种⽅ 式,就是初始化列表,初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成 员列表&#xf…

redis的使用场景

1. redis的使用场景 redis使用场景的案例:[1]热点数据的缓存[2]分布式锁[3]短信业务(登录注册时)2. redis实现注册登录功能 代码 在发送验证码时,先判断数据库是否有该手机号,有则发送验证码(此时redis缓存…

基于微信小程序+SpringBoot+Vue的自习室选座与门禁系统(带1w+文档)

基于微信小程序SpringBootVue的自习室选座与门禁系统(带1w文档) 基于微信小程序SpringBootVue的自习室选座与门禁系统(带1w文档) 本课题研究的研学自习室选座与门禁系统让用户在小程序端查看座位,预定座位,支付座位价格,该系统让用户预定座位…

Jmeter三种方式获取数组中多个数据并将其当做下个接口参数入参【附带JSON提取器和CSV格式化】

目录 一、传统方式-JOSN提取器获取接口返回值 1、接口调用获取返回值 2、添加JSON提取器 3、调试程序查看结果 4、添加循环控制器 5、设置count计数器 6、添加请求 7、执行请求 二、CSV参数化 1、将结果写入后置处理程序 2、设置循环处理器 3、添加CSV文件 4、设置…

【机器学习】用Jupyter Notebook实现并探索单变量线性回归的代价函数以及遇到的一些问题

引言 在机器学习中,代价函数(Cost Function)是一个用于衡量模型预测值与实际值之间差异的函数。在监督学习中,代价函数是评估模型性能的关键工具,它可以帮助我们了解模型在训练数据上的表现,并通过优化过程…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此,一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中,研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…

PyTorch安装CUDA标准流程(可解决大部分GPU无法使用问题)

最近一段时间在研究PyTorch中的GPU的使用方法,之前曾经安装过CUDA,不过在PyTorch中调用CUDA时无法使用。考虑到是版本不兼容问题,卸载后尝试了其他的版本,依旧没有能解决问题,指导查阅了很多资料后才找到了解决方案。 …

uni-app声生命周期

应用的生命周期函数在App.vue页面 onLaunch:当uni-app初始化完成时触发(全局触发一次) onShow:当uni-app启动,或从后台进入前台时显示 onHide:当uni-app从前台进入后台 onError:当uni-app报错时触发,异常信息为err 页面的生命周期 onLoad…

数据治理之“财务一张表”

前言 信息技术的发展,伴随企业业务系统的纷纷建设,提升业务处理效率的同时,也将企业的整体主价值链流程分成了一段一段的业务子流程,很多情况下存在数据上报延迟、业务协作不顺畅、计划反馈不及时、库存积压占资多……都可以从数据…

20240725java的Controller、DAO、DO、Mapper、Service层、反射、AOP注解等内容的学习

在Java开发中,‌controller、‌dao、‌do、‌mapper等概念通常与MVC(‌Model-View-Controller)‌架构和分层设计相关。‌这些概念各自承担着不同的职责,‌共同协作以构建和运行一个应用程序。‌以下是这些概念的解释:‌…

深度学习趋同性的量化探索:以多模态学习与联合嵌入为例

深度学习趋同性的量化探索:以多模态学习与联合嵌入为例 参考文献 据说是2024年最好的人工智能论文,是否有划时代的意义? [2405.07987] The Platonic Representation Hypothesis (arxiv.org) ​arxiv.org/abs/2405.07987 趋同性的量化表达 …

OAK相机支持的图像传感器有哪些?

相机支持的传感器 在 RVC2 上,固件必须具有传感器配置才能支持给定的相机传感器。目前,我们支持下面列出的相机传感器的开箱即用(固件中)传感器配置。 名称 分辨率 传感器类型 尺寸 最大 帧率 IMX378 40563040 彩色 1/2.…

产品经理-简历的筛选标准(22)

什么是简历 简要地描述过往的经历—一份简历的核心要素就是介绍你所经历过的事情 因此准备简历的关键是“简”“要”二字: 一方面是你挑选出来的事情,一定是重要的、能给予你所谋求的位置提供竞争力的事情;另一方面是在描述这件事情的时候 要…

《Java初阶数据结构》----6.<优先级队列之PriorityQueue底层:堆>

前言 大家好,我目前在学习java。之前也学了一段时间,但是没有发布博客。时间过的真的很快。我会利用好这个暑假,来复习之前学过的内容,并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区…