模型解释性:PFI、PDP、ICE等包的用法
本篇主要介绍几种其他较常用的模型解释性方法。
1. Permutation Feature Importance(PFI)
1.1 算法原理
置换特征重要性(Permutation Feature Importance)的概念很简单,其衡量特征重要性的方法如下:计算特征改变后模型预测误差的增加。如果打乱该特征的值增加了模型的误差,那么一个特征就是重要的;如果打乱之后模型误差不变,那就认为该特征不重要。
1.2 Python实现
使用Wine酒数据来训练模型。其模型训练代码如下:
import pandas as pd
import numpy as np
from sklearn.datasets import load_wine
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from matplotlib import pyplot as plt
import seaborn as snswine=load_wine()
X=pd.DataFrame(wine.data,columns=wine.feature_names)
y=wine.targetrfc=RandomForestClassifier(max_depth=4,random_state=0)
rfc.fit(X,y)
y_pred=rfc.predict(X)accuracy=accuracy_score(y,y_pred)
1.2.1 sklearn包实现
&ems;常用的机器学习包sklearn中也集成了这种方法,但是需要单独写代码来实现可视化。其具体代码如下:
from sklearn.inspection import permutation_importance
result=permutation_importance(rfc,X,y,n_repeats=10,random_state=42)feat=pd.DataFrame(np.hstack(([[col] for col in wine.feature_names],[[item] for item in result['importances_mean']])),columns=['Feat','Imp'])
feat['Imp']=feat['Imp'].astype(float)
feat=feat.sort_values('Imp',ascending=False)
sns.barplot(x='Imp',y='Feat',data=feat)
plt.show()
其结果如下:
1.2.2 eli5包实现
import eli5
from eli5.sklearn import PermutationImportance
perm=PermutationImportance(rfc,n_iter=10)
perm.fit(X,y)
eli5.show_weights(perm,feature_names=wine.feature_names)
其结果如下:
1.3 参考资料
- https://blog.csdn.net/weixin_39653948/article/details/110731460
- https://blog.csdn.net/qq_41185868/article/details/126046956
2 Partial Dependency Plots(部分依赖图,PDP)
2.1 算法原理
部分依赖图(PDP)展示了一个或两个特征对机器学习模型预测结果的边际效应。部分依赖图可以显示目标和特征之间的关系是线性的、单调的还是更复杂的关系。PDP假设所有特征两两不相关。其具体步骤如下:
- 训练一个机器学习模型(假设特征依次为F1…Fn,yF_{1} \dots F_{n},yF1…Fn,y为目标变量);
- 假设需要探究特征F1F_{1}F1对目标变量yyy的边际效应;
- 特征F1F_{1}F1的取值依次为(a1,a2,…,an)(a_{1},a_{2},\dots,a_{n})(a1,a2,…,an); 依次用a1,a2,…,ana_{1},a_{2},\dots,a_{n}a1,a2,…,an代替F1F_{1}F1列,其他特征保持不变。利用训练好的模型对这些数据进行预测,计算所有样本的预测平均值。
- 以特征F1F_{1}F1的不同取值为X轴,其对应的预测样本平均值为Y轴进行作图即可。
2.2 Python实现
2.2.1 安装PDPbox包
使用如下代码直接安装PDPbox包的时候经常报错。报错的原因在于matplotlib V3.1.1无法正确安装。
pip install PDPbox
在网上查了很多资料也没有解决,所以在相关网站:https://pypi.tuna.tsinghua.edu.cn/simple/pdpbox/ 直接下载了pdpbox的压缩包,解压之后将以下两个文件直接放到python安装路径的lib/site-packages文件夹下即可。
2.2.2 PDPbox实现
- 单变量的边际效用
from pdpbox import pdppdp_goals=pdp.pdp_isolate(model=rfc,dataset=X,model_features=wine.feature_names,feature=wine.feature_names[0])
pdp.pdp_plot(pdp_goals,wine.feature_names[0])
plt.show()
- 交叉特征的边际效用
pdp_goals=pdp.pdp_interact(model=rfc,dataset=X,model_features=wine.feature_names,features=wine.feature_names[3:5])
pdp.pdp_interact_plot(pdp_goals,feature_names=wine.feature_names[3:5])
plt.show()
2.2.3 sklearn实现
除了使用专用的PDPbox箱之外,还可以使用sklearn包来实现部分依赖图。具体使用方法如下:
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(rfc,X,features=wine.feature_names[0:1],feature_names=wine.feature_names,target=0)
plt.show()plot_partial_dependence(rfc,X,features=wine.feature_names[3:5],feature_names=wine.feature_names,target=0)
plt.show()
其结果如下(这里仅显示第二组结果):
3 Individual Conditional Expectation(ICE)
3.1 算法原理
个体条件期望计算方法与PDP类似,它刻画的是每个个体的预测值与单一变量之间的关系,消除了非均匀效应的影响。
3.2 参考资料
- https://blog.csdn.net/sinat_26917383/article/details/115669705
相关文章:
模型解释性:PFI、PDP、ICE等包的用法
本篇主要介绍几种其他较常用的模型解释性方法。 1. Permutation Feature Importance(PFI) 1.1 算法原理 置换特征重要性(Permutation Feature Importance)的概念很简单,其衡量特征重要性的方法如下:计算特征改变后模型预测误差的增加。如果打乱该特征的…...
spring常见面试题(2023最新)
目录前言1.spring是什么2.spring的设计核心是什么3.IOC和AOP面试题4.spring的优点和缺点5.spring中bean的作用域6.spring中bean的注入方式7.BeanFactory 和 ApplicationContext有什么区别?8.循环依赖的情况,怎么解决?9.spring中单例Bean是线程…...
华为OD机试题,用 Java 解【压缩报文还原】问题
最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…...
机器学习-BM-FKNCN、BM-FKNN等分类器对比实验
目录 一、简介和环境准备 二、算法简介 2.1四种方法类: 2.1.1FKNN 2.1.2FKNCN 2.1.3BM-FKNN 2.1.3BM-FKNCN 2.2数据预处理 2.3输出视图 2.4调用各种方法看准确率 2.4.1BM-FKNCN 2.4.2BM-FKNN 2.4.3FKNCN 2.4.4FKNN 2.4.5KNN 一、简介和环境准备 k…...
ChatGPT火了,对话式人工智能还能干嘛?
身兼数职的ChatGPT 从2022火到了2023 连日来一直是各大平台的热议对象 其实除了写诗、敲代码、处理文档 以ChatGPT为代表的 对话式人工智能 还有更重要的工作要做 对话式AI与聊天机器人 相信大多数人…...
十一、操作数栈的特点(Operand Sstack)
1.每一个独立的栈帧中除了包含局部变量表以外,还包含一个后进先出的操作数栈,也可以称之为表达式栈。 2.操作数栈,在方法执行过程中,根据字节码指令,往栈中写入数据,或提取数据,即入栈ÿ…...
拆解瑞幸新用户激活流程,如何让用户“动”起来?
Aha时刻 一个产品的拉新环节,是多种方式并存的;新用户可能来自于商务搭建了新的渠道,运营策划了新的活动,企划发布了新的广告,销售谈下了新的客户,市场推广了新的群体,以及产品本身的口碑传播,功能更新带来的自然流量。 这是一个群策群力的环节,不同的团队背负不同的K…...
tkinter界面的TCP通信/开启线程等待接收数据
前言 用简洁的语言写一个可以与TCP客户端实时通信的界面。之前做了一个项目是要与PLC进行信息交互的界面,在测试的时候就利用TCP客户端来实验,文末会附上TCP客户端。本文分为三部分,第一部分是在界面向TCP发送数据,第二部分是接收…...
华为OD机试题,用 Java 解【任务混部】问题
最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…...
看linux内核启动流程需要的汇编指令解释
一、指令 0.MRS 和MSR MRS 指令: 对状态寄存器CPSR和SPSR进行读操作。 MSR指令: 对状态寄存器CPSR和SPSR进行写操作。 1.adrp adrp x0, boot_args把boot_args的页基地址提取出来,放到x0中。 2.stp stp x21, x1, [x0]将 x21, x1 的值存入 x0寄存器记录的地址中…...
【巨人的肩膀】JAVA面试总结(二)
1、💪 目录1、💪1.0、什么是面向对象1.1、JDK、JRE、JVM之间的区别1.2、什么是字节码1.3、hashCode()与equals()之间的联系1.4、String、StringBuffer、StringBuilder的区别1.5、和equals方法的区别1.6、重载和重写的区别1.7、List和Set的区别1.8、Array…...
【网络安全入门】零基础小白必看!!!
看到很多小伙伴都想学习 网络安全 ,让自己掌握更多的 技能,但是学习兴趣有了,却发现自己不知道哪里有 学习资源◇瞬间兴致全无!◇ 😄在线找人要资料太卑微,自己上网下载又发现要收费0 🙃差点当…...
字节前端经典面试题(附答案)
有哪些可能引起前端安全的问题? 跨站脚本 (Cross-Site Scripting, XSS): ⼀种代码注⼊⽅式, 为了与 CSS 区分所以被称作 XSS。早期常⻅于⽹络论坛, 起因是⽹站没有对⽤户的输⼊进⾏严格的限制, 使得攻击者可以将脚本上传到帖⼦让其他⼈浏览到有恶意脚本的⻚⾯, 其注⼊⽅式很简…...
数据库管理工具的使用
目录 摘要 一、Navicat是什么? 二、使用步骤 1.如何下载与安装 2.如何连接远程数据库 总结 摘要 本文主要介绍数据库管理工具的使用 一、Navicat是什么? 它是一款数据库管理工具,将此工具连接数据库,你可以从中看到各种数据库的详细…...
让马斯克反悔的毫米波雷达,被国产雷达头部厂商木牛科技迭代到了5D时代
近日,特斯拉或将在其HW4.0硬件系统配置一枚高精度4D毫米波雷达的消息在外网刷屏。据分析,“纯视觉”信仰者马斯克之所以做出这样的决定,一方面是减配了雷达的特斯拉自动驾驶,表现不尽如人意;另一方面也跟毫米波雷达的技…...
MaxWell原理概述
文章目录1.MaxWell概述2.Maxwell输出数据格式3.Maxwell原理3.1 MySQL二进制日志3.2 MySQL主从复制1.MaxWell概述 Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控Mysql数据库的数据变更操作(包括insert、update、dele…...
电子技术——AB类输出阶
电子技术——AB类输出阶 原理 交越失真可以通过通过一个较小的偏置电流解除,如下图: QNQ_NQN 和 QPQ_PQP 的基极之间存在偏置电压 VBBV_{BB}VBB 。对于完美匹配的晶体管,当 vI0v_I 0vI0 的时候,此时 vO0v_O 0vO0 。每…...
Archlinux个人安装流程
操作环境: 时间:2023-02-17 电脑型号:联想拯救者R720 cpu:Intel Core i5-7300HQ 4x 3.5GHz gpu:NVIDIA GeForce GTX 1050 Ti 安装系统: 1.下载镜像: 请访问https://archlinux.org/查找镜…...
【Autoware】2小时安装Autoware1.13(保姆级教程)
前言:ROS的出现使得机器人软件开发更加快速和模块化,在此基础上,Autoware.ai开源项目可以让我们很容易地将一套完整的自动驾驶软件部署到我们的测试车辆上,并见证它跑起来! 文章目录1.Autoware简介2.电脑软硬件配置要求…...
JVM 堆内存模型
方法区和永久代的关系 方法区与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做 N…...
linux-中断下半部
引用preempt宋宝华: 是谁关闭了Linux抢占,而抢占又关闭了谁?Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度(二十)内核抢占实现(preempt)Linux中的preempt_count - 知乎 (zhihu.com)linux 中断子系统…...
SpringMVC源码:HandlerMapping加载1
参考资料: 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头:本文为个人学习笔记,内容比较随意,夹杂个人理解,如有错误,欢迎指正。 前文: 《SpringMVC源码&a…...
【ArcGIS】12 投影
问题描述 在处理地理数据时,可能会遇到以下关于投影的问题: DEM缺少投影,提取流域会报错图层只有地理坐标系,没有投影坐标系,无法测量距离、计算面积等要素图层投影偏移量错误,与实际位置有偏差总之,投影对各种地理操作影响很大,有必要深入理解。 投影说明 在ArcGIS…...
【微信小程序-原生开发+TDesign】通用功能页封装——地点搜索(含腾讯地图开发key 的申请方法)
效果预览 核心技能点 调用腾讯地图官方的关键字地点搜索功能,详见官方文档 https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodGetsuggestion 完整代码实现 地点输入框 <t-input value"{{placeInfo.title}}" bindtap"searchPlace" dis…...
h5: 打开手机上的某个app
1、android端:直接通过URL Scheme方式打开。2、ios端(2种):(1)使用URL Scheme方式打开。(2)使用Universal link方式打开。3、Universal link方式使用注意事项:࿰…...
Hot Chocolate 构建 GraphQL .Net Core 服务
Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任何服务或数据源,并创建一个有凝聚力的服务,为您的消费者提供统一的 API。 我会在 .NET 应用中使用…...
linux shell 入门学习笔记16 流程控制开发
shell的流程控制一般包括if、for、while、case/esac、until、break、continue语句构成。 if语句开发 单分支if //方式1 if <条件表达式> then 代码。。。 fi //方式2 if <条件表达式>;then 代码。。。 fi 双分支if if <条件表达式> then 代码1 if <条件表…...
机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞…...
给VivoBook扩容重装系统
现在笔记本重装系统都这么复杂吗?原谅我还是10年前的装机水平,折腾了一天终于把系统重新安装好了。 笔记本: ASUS VivoBook 安装系统: Win10 1、扩容 电脑配的512G硬盘满了要换个大的,后盖严丝合缝,不…...
vue 依赖注入使用教程
vue 中的依赖注入,官网文档已经非常详细,笔者在这里总结一份 目录 1、背景介绍 2、代码实现 2.1、依赖注入固定值 2.2、 依赖注入响应式数据 3、注入别名 4、注入默认值 5、应用层 Provide 6、使用 Symbol 作注入名 1、背景介绍 为什么会出现依…...
wordpress html 单页/黑马it培训班出来现状
element-UI 根据table中数据改变颜色 或显示对应内容 1、根据table中数据的值改变显示颜色,效果:代码: <el-table-column prop"countdown" label"剩余天数(天)" width"95"><template scope"scop…...
衡器行业网站建设模板/深圳市住房和建设局
2019独角兽企业重金招聘Python工程师标准>>> 前言 自己主要是IOS,但是也想业余时间学学后台的一点,之前用过mfc,c#,写点嵌入式辅佐小工具,现在入坑脱做IOS.所以,想向全栈走,就业余时间看看sprin…...
网站开发工程师职业定位/长沙正规竞价优化推荐
携带式超声波扫描仪是一种检测从物体反射的声波并将其转换为即时图像的设备。通常使用两种类型的存储器:存储器和图像/报告存储器。配备存储器存储来自外部硬件的标志和配置信息,图像/报告存储器存储图像和相应的报告数据。即使这些存储器突然断电,它们也…...
淮阳城乡建设局网站/衡水seo排名
tinymonit(Go Site) 可以搜集系统的CPU、内存、负载等信息,以及系统进程的CPU、内存等相关信息可自由组合,当然也支持集群模式,即如果你有多台机器多个进程仍然可以使用该包收集简单的监控信息来监控你的应用。 使用示例 获取进程监控信息获取…...
wordpress滑动解锁/合肥seo网站管理
1.Java语言中负责并发管理机制的是多线程 (这道题来自牛客网,但是感觉不太对劲),Java中并发的实现机制是多线程,而不是管理机制,算了。自己理解就好。 2.Java中的线程池具有什么作用? ÿ…...
网站服务器怎么做/seopc流量排行榜企业
哈喽!大家好,我是小奇,一位热爱分享的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅…...