回归模型评价指标原理与基于sklearn的实现

news2024/11/19 0:31:51

1 前言

        回归任务是机器学习中常见的任务,特别是涉及到具体的发电量预测、风力预测等工业任务时,有非常多的应用场景。回归任务不同于分类任务,回归任务的预测值一般是连续的数,分类任务的预测值则是离散的值(比如0、1分类);分类任务使用accuracy_score、recall_score、F1_score作为评价指标,而回归任务中常用的指标主要包括:explained_variance_score、mean_absolute_error、mean_squared_error、 root-mean-square error、r2_score。

2 评价指标介绍

2-1 explained_variance_score

       可解释方差( explained_variance_score)。用于评判回归模型的方差得分,其值取值范围是[0,1],越接近于1说明自变量越能解释因变量的方差变化,值越小则说明效果越差。假设y是真实值,f是相对应的预测值,Var是方差。Explained Variance由下式公式给出:

        统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。可解释方差并不意味着解释了方差,仅仅意味着我们可以使用一个或多个变量来比以前更准确地预测事物。在许多模型中,如果X与Y相关,X可以说是”解释”了Y中的方差,但是X并不真正导致Y。

prediction = [2.7290165424346924,5.511385440826416,5.924368381500244,6.808969020843506,6.886723041534424,7.523008346557617]
true_value = [2.779719114303589, 5.632253646850586,6.240379810333252,6.325290203094482,6.893458843231201,7.779913425445557]
from sklearn.metrics import explained_variance_score
score = explained_variance_score(true_value, prediction)
print(score)
#0.9722818339245968

2-2 mean_absolute_error

        平均绝对误差(Mean Absolute Error,MAE),用来描述预测值和真实值的差值,用于评估预测结果和真实数据集的接近程度的程度,其值越小说明拟合效果越好。平均绝对误差 (MAE)是最容易理解的回归误差指标。 我们将为每个数据点计算残差,只取每个残差的绝对值,以使负残差和正残差不会被抵消。 然后,我们取所有这些残差的平均值。 有效地,MAE描述了残差的典型大小。假设fi是真实值,yi是相对应的预测值,则n个样本的MAE可由下式出给:

         虽然平均绝对误差能够获得一个评价值,但是并不知道这个值代表模型拟合是优还是劣,只有通过对比才能达到效果。

prediction = [2.7290165424346924,5.511385440826416,5.924368381500244,6.808969020843506,6.886723041534424,7.523008346557617]
true_value = [2.779719114303589, 5.632253646850586,6.240379810333252,6.325290203094482,6.893458843231201,7.779913425445557]
from sklearn.metrics import mean_absolute_error
score = mean_absolute_error(true_value, prediction)
print(score)
#0.20581698417663574

2-3  mean_squared_error

  均方差(Mean squared error,MSE),该指标计算的是拟合数据和原始数据对应样本点的误差的平方和的均值,其值越小说明拟合效果越好。假设fi是真实值,yi是相对应的预测值,则n个样本的MAE可由下式出给:

prediction = [2.7290165424346924,5.511385440826416,5.924368381500244,6.808969020843506,6.886723041534424,7.523008346557617]
true_value = [2.779719114303589, 5.632253646850586,6.240379810333252,6.325290203094482,6.893458843231201,7.779913425445557]
from sklearn.metrics import mean_squared_error
score = mean_squared_error(true_value, prediction)
print(score)
#0.06950564774945178

2-4 root-mean-square error

         由于MSE与我们的目标变量的量纲不一致,为了保证量纲一致性,我们需要对MSE进行开方,即均方根误差(RMSE):均方根误差 Root Mean Squared Error(RMSE)。

         均方根误差亦称标准误差,它是观测值与真值偏差的平方与观测次数比值的平方根。均方根误差是用来衡量观测值同真值之间的偏差。标准误差对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。可用标准误差作为评定这一测量过程精度的标准。计算公式如下:

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

  RMSE与MAE对比:RMSE相当于L2范数,MAE相当于L1范数。次数越高,计算结果就越与较大的值有关,而忽略较小的值,所以这就是为什么RMSE针对异常值更敏感的原因(即有一个预测值与真实值相差很大,那么RMSE就会很大)

prediction = [2.7290165424346924,5.511385440826416,5.924368381500244,6.808969020843506,6.886723041534424,7.523008346557617]
true_value = [2.779719114303589, 5.632253646850586,6.240379810333252,6.325290203094482,6.893458843231201,7.779913425445557]
from sklearn.metrics import mean_squared_error
import math
mse_score = mean_squared_error(true_value, prediction)
rmse_score = math.sqrt(mse_score)
print(rmse_score)

2-5 R2 score 

        R2 Score又称为the coefficient of determination。判断的是预测模型和真实数据的拟合程度,最佳值为1,同时可为负值。假设yi是真实值,fi是相对应的预测值,\overline{y}y的均值,则n 个样本的R2 score由下式公式给出:

  如果结果是0,就说明我们的模型跟瞎猜差不多。如果结果是1,就说明我们模型无错误。如果结果是0-1之间的数,就是我们模型的好坏程度。如果结果是负数。说明我们的模型还不如瞎猜。

prediction = [2.7290165424346924,5.511385440826416,5.924368381500244,6.808969020843506,6.886723041534424,7.523008346557617]
true_value = [2.779719114303589, 5.632253646850586,6.240379810333252,6.325290203094482,6.893458843231201,7.779913425445557]
from sklearn.metrics import r2_score
score = r2_score(true_value, prediction)
print(score)
#0.9714655558567518

后记

        reference:sklearn中的回归器性能评估方法 - nolonely - 博客园 

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

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

相关文章

ssh2.js+Shell一套组合拳下来,一年要花2080分钟做的工作竟然节省到52分钟~

前言 进入了新的一年,团队被分配了新的工作内容——每周巡检。 巡检工作简单,但需要人工重复性地登陆远程服务器、输入重复的命令,然后将命令的结果记录下来。每做一次估计花40分钟,但要每周做,一年52周,…

Java---微服务---分布式搜索引擎elasticsearch(3)

分布式搜索引擎elasticsearch(3)1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结1.3.RestAPI实现聚合1.3.1.API语法1.3.2.业务需求1.3.3.业务实现2.自动补全2.1.拼音分…

51单片机学习笔记-15 红外遥控

15 红外遥控 [toc] 注:笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 注:工程及代码文件放在了本人的Github仓库。 15.1 红外遥控与外部中断 15.1.1 红外遥控器 红外遥控是利用红外光进行通信的设备…

【MyBatis】| MyBatis参数处理(核心知识)

目录 一:MyBatis参数处理 1. 单个简单类型参数 2. Map参数 3. 实体类参数(PoJo类) 4. 多参数 5. Param注解(命名参数) 一:MyBatis参数处理 接口中方法的参数专栏! 1. 单个简单类型参数 简…

RSA加密算法

RSA算法原理 非对称加密算法,有公钥和私钥之分通过公钥加密的数据必须通过私钥才能解密,反之,私钥加密的数据需要通过公钥解私钥能生成公钥,当公钥不能推导出私钥 欧拉函数 指小于n的正整数中与n互质的数的总个数(记…

基于蜣螂算法优化的核极限学习机(KELM)回归预测-附代码

基于蜣螂算法优化的核极限学习机(KELM)回归预测 文章目录基于蜣螂算法优化的核极限学习机(KELM)回归预测1.KELM理论基础2.回归问题数据处理4.基于蜣螂算法优化的KELM5.测试结果6.Matlab代码摘要:本文利用蜣螂算法对核极限学习机(KELM)进行优化,并用于回归…

C 语言零基础入门教程(十九)

C 文件读写 上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也…

激光SLAM闭环方案总结

高质量的闭环是建图必不可少的元素之一。而激光SLAM不像视觉那样可以提供细致的纹理信息,因此常常出现误检和漏检的情况。最近,看了不少关于激光SLAM闭环方法的论文,总结一下。一、构建点云的描述子1、Scan Context(2018&#xff…

抗抑郁药如何帮助细菌抵抗抗生素

谷禾健康 迄今为止最全面的全球抗菌素耐药性 (AMR) 研究发现,由耐药菌引起的感染是所有年龄段人群死亡的主要原因之一。 22年发表在《柳叶刀》杂志上的分析估计,2019 年有 495 万人死于细菌性 AMR 发挥作用的疾病。其中,127 万人死亡是 AMR 的…

如何使用matlab对时间序列进行ADF检验?|adftest函数(获取不同显著性下的统计结果)

ADF检验 迪基富勒检验(ADF检验)是一种常见的统计检验,用于检验给定时间序列是否平稳。在分析序列的平稳性时,它是最常用的统计检验之一。matlab中提供了函数adftest可以完成该检验,本文重点介绍该函数的用法。 Matla…

创建表和管理表

文章目录基础知识一条数据存储的过程标识符命名规则MySQL中的数据类型创建和管理数据库创建数据库使用数据库修改数据库删除数据库创建表创建方式1创建方式2查看数据表结构修改表追加一个列修改一个列重命名一个列删除一个列重命名表删除表清空表内容拓展拓展1:阿里…

setState的使用+React更新机制+events+受控和非受控组件

setState是异步更新 总结: 1.setState设计为异步,可以显著的提升性能 如果每次调用 setState都进行一次更新,那么意味着render函数会被频繁调用,界面重新染,这样效率是很低的;最好的办法应该是获取到多个更…

单片机开发---ESP32S3移植lvgl+触摸屏

书接上文 《单片机开发—ESP32-S3模块上手》 本章内容 熟悉一下ESP32S3的开发,修改范例程序的lvgl,使之能够匹配现在的显示屏。 具体工作大概为通过SPI接口连接一块SPI串口屏幕,并且适配lvgl,最后加上触摸屏作为输入。 屏幕 …

【计算机网络】第一章 计算机网络结构

文章目录第一章 体系结构1.1 计算机网络概述1.1.1 计算机网络的概念1.1.2 计算机网络的组成1.1.3 计算机网络的功能1.1.4 计算机网络的分类*1.1.5 计算机网络的标准化工作1.1.6 计算机网络的性能指标1.2 计算机网络体系结构与参考模型1.2.1 计算机网络分层结构1.2.2 计算机网络…

#8链表的中间结点#

链表的中间结点 1题目链接 链接 2思路 思路1:遍历一遍 计数 然后/2 再遍历一遍 思路2:slow fast指针 slow指针一次走1步 fast指针一次走2步 当fast为空的时候 slow的位置就是中间结点 奇数个: 1 2 3 4 5 fast走完第三次为空 slow走完第三次就是3 偶数个: 1 2 3 4 5 6 fast走完…

智慧型物业管理系统功能解析

随着当前社会经济的发展与科技发达,物业管理系统化已经成为常态了。尤其是随着智慧物业管理系统功能越来越多,人们对智慧物业管理系统的依赖就更明显了。毕竟系统真的可以给生活带来很多的便利之处: 业主可通过该系统查询自己住房的详细信息…

“揾”钱,最紧要系稳

我是腾讯安全的樊自磊。我们团队在腾讯主要负责金融风控产品,解决相关产品交付和服务维护工作,像国内知名大型国有银行、城商行、互联网金融公司等,都是我们的服务对象。今年春节,我和我的的同事们都在深圳为金融行业的网络安全进…

连续多输入多输出对象最优控制

连续多输入多输出对象最优控制 控制对象:平面二自由度机械臂 动力学模型: M ( q ) q + C ( q , q ) + G ( q ) =

【HDRP】自动生成的光照探针——Probe Volume

HDRP中,增加了Probe Volume,可代替旧版的光照探针Light Probe Group。 使用此功能的物体,不再需要光照贴图。 一、优缺点比较 详细说明可查看官方说明。 1.Probe Volume按像素而不是按对象发光,这意味着 HDRP 可以更准确地照亮…

软件著作权申请材料

(一)按要求填写的软件申请表; (二)软件的鉴别材料; 1、软件的操作手册:图文并茂的详细介绍软件的各功能,文档应不超过60页,超过60页应当删除中间内容,保留前后30页; 2、软件的源代码:每页不少于50行&…