技术标签: 算法 机器学习 人工智能 笔记专栏01-可解释性
参考网址:
[1] Interpretable Machine Learning
部分依赖图显示了一个或两个特征对ML模型预测结果的边际影响。部分依赖图可以显示目标和特征之间的关系是线性的、单调的还是更复杂的。例如,当应用于线性回归模型时,部分相关性图始终显示线性关系。
用于回归的部分依赖函数定义:
f ^ x S ( x S ) = E x C [ f ^ ( x S , x C ) ] = ∫ f ^ ( x S , x C ) d P ( x C ) \hat{f}_{x_S}(x_S)=E_{x_C}\left[\hat{f}(x_S,x_C)\right]=\int\hat{f}(x_S,x_C)d\mathbb{P}(x_C) f^xS(xS)=ExC[f^(xS,xC)]=∫f^(xS,xC)dP(xC)
x S x_S xS是部分依赖函数要绘制的特征;通常集合S中仅有一个到两个特征;S中的feature(s)是我们希望了解其对预测的影响的特征。
x C x_C xC是ML模型 f ^ \hat{f} f^使用的其他特征,C是S的补集;
特征向量 x S x_S xS和 x C x_C xC的组合构成了总特征空间x。
Partial Dependence的工作原理是,在集合C中的特征分布上边缘化机器学习模型的输出,以便该函数显示我们感兴趣的集合S中的特征与预测结果之间的关系。通过边缘化其他特性,我们得到的函数只依赖于S中的特性,包括与其他特性的交互。
通过计算训练数据中的平均值来估计部分函数 f ^ x S \hat{f}_{x_S} f^xS,也称为Monte Carlo方法:
f ^ x S ( x S ) = 1 n ∑ i = 1 n f ^ ( x S , x C ( i ) ) \hat{f}_{x_S}(x_S)=\frac{1}{n}\sum_{i=1}^n\hat{f}(x_S,x^{(i)}_{C}) f^xS(xS)=n1i=1∑nf^(xS,xC(i))
Partial Function告诉我们,对于给定特征集合S的value(s),预测的平均边际效应是什么。在这个公式中, x C ( i ) x^{(i)}_{C} xC(i)是数据集中我们不感兴趣的特性的实际特征值,n是数据集中的实例数。PDP的一个假设是C中的特征与S中的特征不相关。如果违背了这一假设,那么部分依赖图计算的平均值将包含非常不可能或甚至不可能的数据点(见缺点)。
对于ML模型输出概率的分类,PDP 显示给定 S 中 feature(s) 不同值的某个类别的概率。处理多个类的一个简单方法是画一条线或绘制每个类。\
PDP 是一种全局方法:该方法考虑所有实例并给出关于特征与预测结果的全局关系的声明。
到目前为止,我们只考虑了数值特征。 对于分类特征,部分依赖很容易计算。 对于每个类别,我们通过强制所有数据实例具有相同的类别来获得 PDP 估计。例如,如果我们查看自行车租赁数据集并对季节的部分依赖图感兴趣,我们会得到 4 个数字,每个季节一个。为了计算“夏天”的值,我们将所有数据实例的季节替换为“夏天”并对预测进行平均。
实际上,特征集 S 通常只包含一个特征或最多包含两个,因为一个特征产生 2D 图,而两个特征产生 3D 图。 除此之外的一切都非常棘手。即使是在2D纸上或显示器上使用3D也很有挑战性。
让我们回到回归示例,在该示例中,我们预测在给定日期将租用的自行车数量。首先我们拟合一个机器学习模型,然后我们分析部分依赖关系。 在这种情况下,我们拟合了一个随机森林来预测自行车的数量,并使用部分依赖图来可视化模型学习到的关系。 下图显示了天气特征对预测自行车数量的影响。
自行车数量预测模型以及温度、湿度和风速的 PDP。 最大的差异体现在温度上。 天气越热,租用的自行车就越多。 这一趋势上升到 20 摄氏度,然后趋于平缓并在 30 摄氏度时略微下降。x 轴上的标记表示数据分布。
该模型预测,对于温暖但不太热的天气,租赁自行车的平均数量会很高。当湿度超过60%时,潜在的骑行者越来越不愿意租用自行车。此外,风越大,喜欢骑自行车的人就越少,这是有道理的。有趣的是,当风速从25公里/小时增加到35公里/小时时,预测的自行车租赁数量并不会下降,但没有太多的训练数据,所以机器学习模型可能无法学习到这个范围的有意义的预测。至少在直觉上,我认为自行车的数量会随着风速的增加而减少,尤其是在风速非常大的时候。
为了说明具有分类特征的部分依赖图,我们检查了季节特征对预测的自行车租赁的影响。
我们还计算了宫颈癌分类的部分依赖性。 这次我们拟合了一个随机森林,根据风险因素来预测女性是否可能患上宫颈癌。 我们计算并可视化癌症概率对随机森林不同特征的部分依赖:
基于使用激素避孕药的年龄和年份的癌症概率 PDP。 对于年龄,PDP 显示概率在 40 岁之前较低,并在 40 岁之后增加。 服用激素避孕药的时间越长,预测的癌症风险就越高,尤其是在 10 年后。 对于这两个特征,没有多少具有大值的数据点可用,因此这些区域的 PD 估计不太可靠。
我们还可以同时可视化两个特征的部分依赖关系:
癌症概率的 PDP 与年龄和怀孕次数的相互作用。 该图显示了 45 岁时癌症概率的增加。对于 25 岁以下的女性,与怀孕 0 次或超过 2 次的女性相比,怀孕 1 次或 2 次的女性预测的癌症风险较低。 但是在得出结论时要小心:这可能只是相关关系而不是因果关系!
这种关系是模型的因果关系——因为我们明确地将结果建模为特征的函数——但不一定适用于现实世界!
【题目链接】ybt 1052:计算邮资OpenJudge NOI 1.4 14:计算邮资【题目考点】1. if…else语句【解题思路】设邮件总重为w克,需要邮资r元1000克以内收基本费8元无论发多重的邮件,基本费都要出的。可以将r的初始值设为8超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算如果w>1000w>1000w>1000,则超出1000克的重量为:w−1000w-1000w−1000,总收费为4⋅⌈w−10005_信息学奥赛一本通1052答案
——- android培训、java培训、期待与您交流! ———-一、获得http请求信息GET / HTTP/1.1 Host: 127.0.0.1:11000 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 User-Agent:
在网上寻找Tomcat的数据库连接池的配置方法,忙碌了一上午,终于弄成功了,呵呵操作系统:windows XP SP11.安装JDK 5.0 update 1下载:http://java.sun.com/假设安装路径为 D:/Java/jdk1.5.0_01设置环境变量(控制面板->系统->高级)JAVA_HOME=D:/Java/jdk1.5.0_01classpath=.;D:_tomcat 连接数据库455
阅读须知:1.本篇文章基于 Android 平台2.Flutter测试项目——测试、Flutter容器项目——容器本文分为以下章节,读者可按需阅读:1.成熟项目的Flu..._flutter快捷引入类
断点的两种位置before response:这个是打在request请求的时候,未达服务器之前after response:打在服务器响应之后,在Fiddler将响应传回给客户端之前打断点的方式一、全局断点全局断点会终端fiddler捕获的所有请求,设置方法:点击rules-> automatic breakpoint ->before requests[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C75lu4B5-164697910177_fiddler如何设置断点
//十六进制字符串public static final String HEXMAXSTRING = "0123456789ABCDEF";/** * @Author: guwenhai * @Description: 将十六进制的字符串转换成字节数组 * @param hexString 数据消息 * @Date: 2020/11/2 18:15 */public static byte[] hexStrToBinaryStr(String hexString) { if(_16进制字符串 在线
使用JavaScript实现预览上传的图片_js 监听图片上传获取流
前言前一段时间一直在做性能调优的工作,颇有收获。因此,简单的总结并分享下研究成果。性能调优很有趣但也是个无底洞,不可能在一篇文章全部阐述完。这里只是提供一个方向,以后碰到了知道可以从这些方面入手即可。具体如下:代码层面for循环中不要利用 + 号去拼接字符串在循环次数比较多的for循环中,我们也不要利用 + 号去拼接字符串。具体例子如下:程序清单 1-1@T..._代码适应性优化
Java中的foreach循环1,语法:for(元素:数组){ }2,用法:String []array={“aa”,“bb”,“cc”};for(String s:array){System.out.println(s);}User[]users={user1,user2,user3};for(User user:users){System.out.println(use..._c:foreach 保留两位小数
本博文使用C#访问注册表获取软件的安装路径并进行显示。_c# 通过注册表找到安装路径
Label标签主要会用于在游戏中显示一些文字字符串类型的信息。那么在Cocos2D-x里面主要会有下面的一些创建标签的方式:1.使用CCLabelTTF类生成系统文字的标签,编程语法如下:CCLabelTTF *left = CCLabelTTF::labelWithString("align left", CCSizeMake(s.width, 50), CCTextAlig...
BZOJLOJ洛谷如果从\(1\)开始,把每个时间\(t_i\)减去\(i\),答案取决于\(\max\{t_i-i\}\)。记取得最大值的位置是\(p\),答案是\(t_p+1+n-1-p=\max\{t_i-i\}+1+n-1\)。把环拆成链,每次询问就可以\(O(n)\)求了(滑动窗口)。考虑怎么维护答案:\(\min\limits_{i=1}^n\{\max\limi...