只能选择分卷文件的第一部分。_为机器学习模型选择正确的度量评估(第一部分)...

作者:Alvira Swalin
编译:ronghuaiyang

导读

对不同的应用场景,需要不同的模型,对于不同的模型,需要不同的度量评估方式。本系列的第一部分主要关注回归的度量
da8fb56bb695a3c8f5cd28c24e0045ac.png

在后现代主义的世界里,相对主义的各种形式一直是最受欢迎和最受唾弃的哲学理论之一。根据相对主义,不存在普遍客观的真理,相反,每个观点都有自己的道理。你一定想知道我为什么要讨论它,以及它是如何与数据科学相关的。

在这篇文章中,我将讨论每个误差度量的有用性,这取决于目标和我们试图解决的问题。当有人告诉你“美国是最好的国家”时,你应该问的第一个问题是这个说法是基于什么。我们是否根据每个国家的经济状况或卫生设施等来评价它们?类似地,每个机器学习模型都试图使用不同的数据集来解决具有不同目标的问题,因此,在选择度量标准之前了解上下文非常重要。

最有用的度量

1de0a371cf3ec48d075cfd9fda154f26.png

在第一篇文章中,我们将只讨论回归中的度量指标。

回归的度量

大多数博客关注的是分类指标,如精确度、召回率、AUC等。作为一个改变,我想探索所有类型的指标,包括那些在回归中使用的。MAE和RMSE是连续变量最常用的两个度量标准。让我们从更流行的开始。

RMSE (均方根误差)

它表示预测值与观测值之差的样本标准差(称为残差)。数学上,它是用这个公式计算的:

57c90f7e6f8ffed6b29421c235dd3efd.png

MAE

MAE是预测值与观测值之间的绝对差的平均值。MAE是一个线性的分数,这意味着所有的个体差异在平均值中被平均加权。例如,10和0之间的差是5和0之间差的两倍。然而,RMSE的情况并非如此,我们将进一步详细讨论。数学上,它是用这个公式计算的:

d072b9208e267a109a2e1da98b85910b.png

你应用哪个呢,为什么?

很容易理解和解释MAE,因为它直接取偏移量的平均值,而RMSE比MAE更能惩罚高的差值。

让我们通过两个例子来理解上面的陈述:

案例1:实际值=[2,4,6,8],预测值= [4,6,8,10]

案例2:实际值=[2,4,6,8],预测值= [4,6,8,12]

MAE for case 1 = 2.0, RMSE for case 1 = 2.0MAE for case 2 = 2.5, RMSE for case 2 = 2.65

从上面的例子中,我们可以看到RMSE比MAE更严重地惩罚了最后一个值预测。一般来说,RMSE将高于或等于MAE。它等于MAE的唯一情况是,所有的差异都相同或为零(对于第一个情况,实际和预测之间的差异是2,对于所有的观测值)。

然而,即使是更加复杂和偏向于更高的偏差,RMSE仍然是许多模型的默认度量,因为根据RMSE定义的损失函数是平滑可微的,并且使其更容易执行数学操作。

虽然这听起来不是很令人愉快,但这是一个非常重要的原因,并使它非常受欢迎。我将试着用数学的方法来解释上面的逻辑。

我们取一个简单的线性模型,其中一个变量是y = mx+b

在这里,我们试图找到“m”和“b”,我们得到了(x,y)的数据。

如果我们用RMSE定义损失函数(J),那么我们可以很容易地微分J wrt。到m和b,得到更新后的m和b(这就是梯度下降的原理,我不会在这里解释)

390fb65f7e2bb94afe40bff5c7ed2b8d.png

上面的方程解起来更简单,同样的方法不适用于MAE。

然而,如果你只想从解释的角度比较两个模型之间的度量,那么我认为MAE是一个更好的选择。重要的是要注意RMSE和MAE的单位都与y值相同,但对于R平方不成立。RMSE和MAE的范围是从0到无穷。

我之前忘记提到的MAE和RMSE之间的一个重要区别是,最小化一组数字的平方误差会得到平均值,最小化绝对误差会得到中值。这就是为什么MAE对于异常值是健壮的,而RMSE不是。这个答案详细解释了这个概念。

R Squared (R²) and Adjusted R Squared

R Squared和Adjusted R Squared通常用于解释目的,解释你选择的自变量如何很好地解释你的因变量的可变性。这两个指标都被误解了,因此在讨论它们的优缺点之前,我想先澄清它们。

数学上,R_Squared由下面的式子给出:

6fbc4f76de8c0313facd5bd61d827995.png
分子是MSE(残差平方和的平均值)分母是Y值的方差。MSE越高,R_squared越小,模型越差。

Adjusted R²

就像R²,Adjusted R²也显示了特征项是如何拟合模型的,模型是如何通过特征项的数量进行调整的。由下式给出:

7efde809f855eaa255f09f71b3868dc5.png

其中n为观测总数,k为特征项的数量。Adjusted R²总是小于或等于R²

为什么你选择Adjusted R²而不是R²?普通R²存在一些问题,需要由Adjusted R²解决。Adjusted R²会考虑由模型中的一个额外的项所带来的基于margin的提升。所以如果你增加有用的项它会增加如果你增加没用的预测项它会减少。然而,项增加了,R²就会增加,即使模型实际上并没有改善。通过一个示例更容易理解这一点。

bfa447913df12ca4e25e11a439b2a2c2.png

在这里,情况1是一个简单的例子我们有5个(x,y)的观测值。在case 2中,我们还有一个变量,它是变量1的2倍(与var1完全相关),在case 3中,我们对var2进行了轻微的扰动,使得它不再与var1完全相关。

因此,如果我们对每种情况都使用简单的普通最小二乘(OLS)模型,那么从逻辑上讲,我们并没有就情况1向情况2和情况3提供任何额外的或有用的信息。所以我们的度量值不应该对这些模型有所改善。然而,对于R²并不是这样,对于模型2和3,R²的值更大。但是你用adjusted R²来处理这个问题,实际上对于这两种情况2 & 3,R²的值都变小了。我们给这些变量(x,y)一些数字,看看在Python中得到的结果。

 import numpy as np import pandas as pd from sklearn import datasets, linear_model  def metrics(m,X,y): yhat = m.predict(X) print(yhat) SS_Residual = sum((y-yhat)**2) SS_Total = sum((y-np.mean(y))**2) r_squared = 1 - (float(SS_Residual))/SS_Total adj_r_squared = 1 - (1-r_squared)*(len(y)-1)/(len(y)-X.shape[1]-1) return r_squared,adj_r_squared  data = pd.DataFrame({"x1": [1,2,3,4,5], "x2": [2.1,4,6.1,8,10.1]}) y = np.array([2.1, 4, 6.2, 8, 9]) model1 = linear_model.LinearRegression() model1.fit( data.drop("x2

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

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

相关文章

多项式乘法与快速傅里叶变换

全世界只有3.14 % 的人关注了数据与算法之美第一节、多项式乘法我们知道,有两种表示多项式的方法,即系数表示法和点值表示法。什么是系数表示法?所谓的系数表示法,举个例子如下图所示,A(x)6x^3 7x^2 - 10…

WPF 模仿QQ音乐首页歌单效果

qq音乐桌面版做的效果感觉很不错,今天就模仿一下它首页歌单的效果,从简单做起。。。看一下效果:,其实也很简单,就是布局和动画,触发器。。。还用到了ItemsControl下面就看看代码:MainWindow的xa…

收藏 : 50个Excel逆天功能,一秒变“表哥”

全世界只有3.14 % 的人关注了数据与算法之美Excel的50个逆天功能,动画教程珍藏版!先看几个简单的:1、自动筛选2、在Excel中字符替换3、在Excel中冻结行列标题4、在Excel中为导入外部数据5、在Excel中行列快速转换6、共享Excel工作簿7、在Exce…

实战~~整个网络无法浏览,提示网络不存在或者尚未启动

今天早上接到同事的电脑,说其他人访问不到他的电脑,他电脑上有文件要共享才能进行工作~~故障现象:能上网,能PING通其他电脑,但是通过网上邻居和IP不能访问其他电脑上的资源。 这是在故障本机上的提示~~ 这是其他工作站…

python ctp接口_使用ctp的python接口

在github上查到一个项目ctpwrapper在按照文档按照的时候报错>>>pip install cython --upgrade>>>pip install ctpwrapper --upgrade在安装第二个命令的时候第一个问题安装yum install -y gcc-c 解决第二个问题ctpwrapper/MdApi.cpp:39:20: 致命错误:Python.h…

C# 并行和多线程编程——认识和使用Task

对于多线程,我们经常使用的是Thread。在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为task会比thread具有更小的性能开销&#xf…

Facebook上的一道题,超过50万的评论和1万3500次分享

全世界只有3.14 % 的人关注了数据与算法之美近日,有网友在Facebook发了一道数学题:发布以后,目前已经收到超过50万的评论和1万3500次分享,图中包含四个等式,前面三个已经有答案了,最后一个问题要求你得出相…

从数学入手,3招打破机器学习的边界

全世界只有3.14 % 的人关注了数据与算法之美本文约2007余字,阅读需要约6分钟;系统资料领取见文末;关键词:人工智能,机器学习,深度学习,数学,学习建议01.机器学习工程师的边界是什么&…

.NET Core 基于 Grafana Loki 日志初体验

介绍Loki: like Prometheus, but for logs.Loki是一个轻量级的日志系统,受到Prometheus项目的启发,由Grafana团队设计和开发,所以在Grafana中是原生支持的,具有可水平扩展,高度可用等特性,通过存储压缩的、…

基于开源流程引擎Activiti5的工作流开发平台BPMX3

2019独角兽企业重金招聘Python工程师标准>>> BPMX3平台是宏天软件在ESTBPM2的基础上,追随开源工作流平台Activiti5,由原班开发团队,历时一年,现重新推出一套解决中国政府及企业的业务流程的开发平台。 相对商业的工作流…

通过Dapr实现一个简单的基于.net的微服务电商系统(十)——一步一步教你如何撸Dapr之绑定...

如果说Actor是dapr有状态服务的内部体现的话,那绑定应该是dapr对serverless这部分的体现了。我们可以通过绑定极大的扩展应用的能力,甚至未来会成为serverless的基础。最开始接触dapr的时候,会在其官方首页看到这么一句话“Dapr is a portabl…

三位一体,用游戏打通孩子记忆力、认知和双语启蒙的学前神器

对于孩子学习知识,现在父母多表现有2个极端,一种完全不让小小孩学硬知识,一种又希望孩子从很小开始就学硬知识。小木比较反对在孩子6岁前就给他们生硬地灌输知识,一定得认识多少个字,背多少个单词,但只要做…

分享一个CSS3的网格系统架构 - ResponsiveAeon

日期:2012-7-30 来源:GBin1.com 在线演示 本地下载 曾经介绍过其它类型的CSS3网格系统,今天我们介绍一款能够帮助你快速创建基于HTML5/CSS3的响应式布局框架 - ResponsiveAeon。 它拥有一个宽度为1104px并且基于12个列的网格框架系统&#…

网络协议,没有想象中那么难

十个人程序员里面,有十个都会说自己学过网络协议,九个人都会说自己懂网络协议。但是面试的时候,问几个问题,能回答的可能只有两三个。不信?来,我问你几道。1、TCP 协议跟 UDP 协议有什么区别?你…

Mysql实现幂等_阿里面试官:接口的幂等性怎么设计?

大家好,我是狂聊。自己最近负责的几个接口,都涉及到了幂等性的操作,抽空总结了一下,这也是面试官比较爱问的问题。一、什么是幂等?看一下维基百科怎么说的:幂等性:多次调用方法或者接口不会改变业务状态&a…

谷歌搜索揭示人性最黑暗的秘密

全世界只有3.14 % 的人关注了数据与算法之美《卫报》网站发布文章指出,我们能够从我们在网上问的问题获得对自己更多的了解呢。美国数据科学家塞斯斯蒂芬斯-大卫多维茨(Seth Stephens-Davidowitz)通过分析谷歌的匿名搜索数据,揭示…

杂集

为什么80%的码农都做不了架构师?>>> 符号相关快捷键: 千分符号:alt 0137 (小键盘) 回车符号:alt 10(小键盘) 查看目录结构:进入windows concole,执行命令tree 转载于:https://my.o…

接口管理平台YApi

介绍YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的…

saiku 连接 MySQL_Saiku连接mysql数据库(二)

Saiku连接Mysql数据库展示数据参考链接:https://www.cnblogs.com/shirui/p/8573491.html前提:Saiku已安装好,mysql已安装好1.添加Saiku的数据库驱动: mysql-connect-java-5.1.17.jar下载相应的数据库驱动放到 saiku-server\tomcat…

TreeView控件应用--访问文件或文件夹(一)

C#用TreeView访问文件或文件夹,通过递归,展开所有文件夹(类似资源管理器的树形窗体) 首先,算法是用递归算法,不断的递归文件。以此来遍历整个电脑的磁盘内容,过程也很简单。这种算法的时间复杂度…