关于各种回归评价指标MSE、RMSE、MAE、R-Squared、Standard Deviation(标准差)_mae、rmse_Coding......的博客-程序员宅基地

技术标签: MAE  RMSE  S-D  R-square  MSE  

        分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍:

1、均方误差(MSE)

       MSE (Mean Squared Error)叫做均方误差,是反映估计量与被估计量之间差异程度的一种度量。设t是根据子样确定的总体参数θ的一个估计量,(θ-t)2的数学期望,称为估计量t的均方误差。它等于σ2+b2,其中σ2与b分别是t的方差偏倚。MSE=

 

     用 真实值-预测值 然后平方之后求和平均。在线性回归的时候我们的目的就是让这个损失函数最小。

2、均方根误差(RMSE)

      RMSE(Root Mean Squard Error)均方根误差,亦称标准误差,其定义为 ,i=1,2,3,…n。在有限测量次数中,均方根误差常用下式表示:√[∑di^2/n]=Re,式中:n为测量次数;di为一组测量值与真值的偏差。如果误差统计分布正态分布,那么随机误差落在±σ以内的概率为68%。RMSE=

 

 

        这不就是MSE开个根号么。有意义么?其实实质是一样的。只不过用于数据更好的描述。
例如:要做房价预测,每平方是万元(真贵),我们预测结果也是万元。那么差值的平方单位应该是 千万级别的。那我们不太好描述自己做的模型效果。怎么说呢?我们的模型误差是 多少千万?。。。。。。于是干脆就开个根号就好了。我们误差的结果就跟我们数据是一个级别的可,在描述模型的时候就说,我们模型的误差是多少万元。

3、MAE

       平均绝对误差(Mean Absolute Deviation),又叫平均绝对离差,是所有单个观测值与算术平均值的偏差的绝对值的平均。平均绝对误差可以避免误差相互抵消的问题,因而可以准确反映实际预测误差的大小。MAE=

 

 

4、R-Squared

       R平方(R-squared)是反映业绩基准的变动对基金表现的影响,影响程度以 0~100 计。如果R平方值等于100,表示基金回报的变动完全由业绩基准的变动所致;若R平方值等于35,即35%的基金回报可归因于业绩基准的变动。简言之,R 平方值越低,由业绩基准变动导致的基金业绩的变动便越少。此外,R平方也可用来确定β系数或α系数的准确性。一般而言,基金的R平方值越高,其两个系数的准确性便越高。

        上面的几种衡量标准针对不同的模型会有不同的值。比如说预测房价 那么误差单位就是万元。数子可能是3,4,5之类的。那么预测身高就可能是0.1,0.6之类的。没有什么可读性,到底多少才算好呢?不知道,那要根据模型的应用场景来。
看看分类算法的衡量标准就是正确率,而正确率又在0~1之间,最高百分之百。最低0。很直观,而且不同模型一样的。那么线性回归有没有这样的衡量标准呢?答案是有的。
那就是R Squared也就R方

 

 

      光看这些东西很懵逼,其中分子是Residual Sum of Squares 分母是 Total Sum of Squares,公式=

 

 

慢慢解释。其实这个很简单。上面分子就是我们训练出的模型预测的所有误差,下面分母就是不管什么我们猜的结果就是y的平均数。

那结果就来了。
如果结果是0,就说明我们的模型跟瞎猜差不多。
如果结果是1。就说明我们模型无错误。
如果结果是0-1之间的数,就是我们模型的好坏程度。
如果结果是负数。说明我们的模型还不如瞎猜。(其实导致这种情况说明我们的数据其实没有啥线性关系)

化简上面的公式
分子分母同时除以m

 

 

 

那么分子就变成了我们的均方误差MSE,下面分母就变成了方差。

 

 

5、标准差

       标准差(Standard Deviation),中文环境中又常称均方差,是离均差平方的算术平均数的平方根,用σ表示。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。

æ åå·ä¸å¹³åå¼åä¹å¬å¼

       均方根误差RMSE是观测值与真值偏差的平方与观测次数n比值的平方根,在实际测量中,观测次数n总是有限的,真值只能用最可信赖(最佳)值来代替.标准误差 对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。因此,标准差是用来衡量一组数自身的离散程度,而均方根误差是用来衡量观测值同真值之间的偏差,它们的研究对象和研究目的不同,但是计算过程类似.

6、代码 

MSE

y_preditc=reg.predict(x_test) #reg是训练好的模型
mse_test=np.sum((y_preditc-y_test)**2)/len(y_test) #跟数学公式一样的

RMSE

rmse_test=mse_test ** 0.5

MAE

mae_test=np.sum(np.absolute(y_preditc-y_test))/len(y_test)

R-Squared

1- mean_squared_error(y_test,y_preditc)/ np.var(y_test)

scikit-learn中的各种衡量指标

from sklearn.metrics import mean_squared_error #均方误差
from sklearn.metrics import mean_absolute_error #平方绝对误差
from sklearn.metrics import r2_score#R square
#调用
mean_squared_error(y_test,y_predict)
mean_absolute_error(y_test,y_predict)
r2_score(y_test,y_predict)

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40327927/article/details/88584084

智能推荐

linux系统shell脚本查询mysql数据库表信息输出到文件_linux下脚本实现从mysql抽取数据到文件-程序员宅基地

有时候需要给不太懂mysql的用户提供一种快速查看mysql表信息的脚本,下面的shell整好符合要求#!/bin/bashDB_USER="DB_USER"DB_PASS="DB_PASS"DB_NAME="DB_NAME"DATE=`date +%F-%H-%M-%S`/usr/bin/mysql -u$DB_USER -p$DB_PASS -e "select count(1) ..._linux下脚本实现从mysql抽取数据到文件

爬虫技术python流程图_爬虫学多久能爬取大规模数据!神级程序员:这篇够你学一个月!...-程序员宅基地

利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息,比如:在目标的驱动下,你的学习才会更加精准和高效。那些所有你认为必须的前置知识,都是可以在完成目标的过程中学到的。这里给你一条平滑的、零基础快速入门的学习路径。在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学习Python的小伙伴们,大几千了吧,各种各样的人群都有,特别喜欢看到这种大家一起交流解决难题...

SQL Server 性能调优(性能基线)-程序员宅基地

SQL Server 性能调优(性能基线) 在写这篇东西的时候我也不是很清楚性能基线,到底要检查点什么,dmv要不要检查,perfmon要检测那先。所以我决定,对我发的《sql server 性能调优》文章内的 perfmon和d...

C++ 继承类练习-程序员宅基地

C7-1 账户类 (100/100 分数)题目描述定义一个基类Account,数据成员包含string类变量userName用于保存账户主人姓名,函数成员包括默认构造函数、带参构造函数用于初始化数据成员和输出姓名的成员函PrintName()。从Account类派生出CreditAccount类,增加整型数据成员credit用于记录该用户信用额度,函数成员包括带参构造函数用于初始化...

VC中的字符串转换宏-程序员宅基地

ATL7.0引入了几个新的转换类和宏,现有的宏提供了显着的改善。新的字符串转换类和宏的名称,采取的形式如下:C SourceType 2[C]DestinationType[EX] 其中,[C]表示目的类型是const类型的,[EX]表示指定了保存字符串数据的固定静态缓存区的大小,如果字符串转换的结果超过了模板参数的大小,..._ca2w()cp_utf8乱码

element上传图片至七牛云_element 七牛上传图片_yan_hai_的博客-程序员宅基地

超简单的上传图片至七牛云<el-row> <el-form-item label="图片" prop="img" label-width="120px"> <el-col :span="20"> <el-upload :action="upload_qiniu_url" :before-upload="beforeUpload" :data="qiniuData" :on-error="up_element 七牛上传图片

随便推点

matlab fft例程,c++ FFTW与Matlab FFT-程序员宅基地

我发布在matlab中央,但没有得到任何反应,所以我想我会转发在这里。我最近在Matlab中写了一个简单的例程,在for循环中使用FFT; FFT主导计算。我在mex中写了相同的例程只是为了实验目的,它调用FFTW 3.3库。结果是,对于非常大的数组,matlab例程比mex例程运行得快(约两倍快)。 mex例程使用智慧并执行相同的FFT计算。我也知道matlab使用FFTW,但是它们的版本是可能..._matlabfftw

触动精灵mysql用法教程_触动精灵如何使用 触动精灵脚本编写教程攻略大全-程序员宅基地

触动精灵是一款模拟手机触摸、按键操作的软件,通过制作脚本,可以让触动精灵代替双手,自动执行一系列触摸、按键操作。触动精灵简单、易用,不需要掌握任何编程知识就可以录制出功能强大的脚本;还可以使用编程知识,编写出功能更为复杂,交互更为灵活的脚本;只要能够在手机上完成的人为操作,触动精灵都可以代替完成,不仅省力,而且高效。触动精灵是很多朋友在手机上面做脚本的工具。触动精灵中有很多的脚本资源可以使用,下面..._触动精灵脚本编写教程

【庄碰辉】带上心灵去旅行,找快乐-程序员宅基地

快乐不是因为拥有的多,而是计较的少。带上心灵去旅行,以平和的心态看待一切,文、画、音,看似耳目所为,其实是内心世界的感受。可以以心感悟,以此沉淀,足矣;耳听佳音,目极美好,已是福音;携一勺花之语,摘一曲花之歌,让心释然,已是欣慰。【豆舞咖啡】...

java实习课堂笔记一_java实习怎么做笔记-程序员宅基地

java实习课堂笔记一工作环境配置JDKIDEAMySqlMySql图形界面管理工具项目入门练习MySql练习实验工作环境配置在开始java项目工作前,我们需要配置好我们的工作环境。需要的配置环境包括JDK、IDEA、MySql以及MySql图形界面管理工具。JDKJDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK),因此想要运行java程序,必须要安装JDK。JDK也有很多的版本,本次实习所需使用的版本是1.8.0_181。至于如何去进行配置JDK,网_java实习怎么做笔记

css给html添加效果-程序员宅基地

本文转载于:猿2048网站https://www.mk2048.com/blog/blog.php?id=2hkhab&title=css%E7%BB%99html%E6%B7%BB%E5%8A%A0%E6%95%88%E6%9E%9C 1 <!doctype htm..._如何为一个html页面添加css效果

Socket 之 UDP 协议通信-c#实现_c# socket udp 广播-程序员宅基地

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 TCP协议就相当于打电话,只有打通了,对方接了才算打电话成功。 但UDP更像发短信,我只要发出去了,就算成功,不管你看没看到。 UDP的用途很广泛,比如网上看球赛直播,用户更注重实时性,所以可以采用UDP协议,过程中丢一两帧,也无所谓,只要能跟上直播的速度就行。而且UDP相对TCP的一个优点就是:速度快(不用得到响应)。当然缺点就是:安全性低(过程中丢了数据你也不知道)......_c# socket udp 广播