回归模型的算法性能评价

news2025/1/17 6:04:52

一、概述

在一般形式的回归问题中,会得到系列的预测值,它们与真实值(ground truth)的比较表征了模型的预测能力,为有效量化这种能力,常见的性能评价指标有平均绝对误差(MAE)、均方误差(MSE)、均方根误差(RMSE)、决定系数(R2)、可解释方差(EVS)等。值得一提的是,回归问题分单输出情形和多输出情形,在多输出情形下,可以对各维度结果进行平均计算或以不同的权重进行计算。

二、评价指标

1. 平均绝对误差(Mean Absolute Error,MAE)

MAE是计算预测值与真实值之差的绝对值之和,再求平均。表达式为

M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE=\frac{1}{n}\sum_{i=1}^{n}{\left| y_i-\hat{y}_i \right|} MAE=n1i=1nyiy^i

其中, y i y_i yi为真实值, y ^ i \hat{y}_i y^i为预测值。

2. 均方误差(Mean Squared Error,MSE)

MSE是计算预测值与真实值之差的平方之和,再求平均。表达式为

M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE=\frac{1}{n}\sum_{i=1}^{n}{\left( y_i-\hat{y}_i \right)^{2}} MSE=n1i=1n(yiy^i)2

其中, y i y_i yi为真实值, y ^ i \hat{y}_i y^i为预测值。

3. 均方根误差(Root Mean Squared Error,RMSE)

RMSE是对MSE作开方处理。表达式为

R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}{\left( y_i-\hat{y}_i \right)^{2}}} RMSE=n1i=1n(yiy^i)2
其中, y i y_i yi为真实值, y ^ i \hat{y}_i y^i为预测值。

4. 决定系数(The Coefficient of Determination,R2)

R2表征自变量对因变量的可解释程度,从波动性的角度衡量了模型对数据的契合程度,取值范围通常为[0,1]。值越接近于1,性能越好;值越接近于0,性能越差。表达式为

R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ i ) 2 R^{2}=1-\frac{\sum_{i=1}^{n}{\left( y_i-\hat{y}_i \right)^{2}}}{\sum_{i=1}^{n}{\left( y_i-\bar{y}_i \right)^{2}}} R2=1i=1n(yiyˉi)2i=1n(yiy^i)2

其中, y ˉ = 1 n ∑ i = 1 n y i \bar{y}=\frac{1}{n}\sum_{i=1}^{n}{y_i} yˉ=n1i=1nyi y i y_i yi为真实值, y ^ i \hat{y}_i y^i为预测值。

5. 可解释方差(Explained Variance Score,EVS)

EVS是模型的解释方差得分,与决定系数R2作用一致,用以衡量从波动性角度解释模型对数据的契合程度,取值范围通常为[0,1]。值越接近于1,性能越好;值越接近于0,性能越差。表达式为
E V S = 1 − V a r { y − y ^ } V a r { y } EVS=1-\frac{Var\{y-\hat{y}\}}{Var\{y\}} EVS=1Var{y}Var{yy^}
其中, y i y_i yi为真实值, y ^ i \hat{y}_i y^i为预测值。

三、Python实现

import numpy as np
import sklearn.metrics as mr

## 单输出情形
y_true = [[4],
          [5],
          [6],
          [7]]

y_pred = [[3],
          [4.2],
          [5],
          [6.3]]

print('\n 单输出情形:')

print('平均绝对误差MAE:',mr.mean_absolute_error(y_true, y_pred))
print('均方误差MSE:',mr.mean_squared_error(y_true, y_pred))
print('均方根误差RMSE:',np.sqrt(mr.mean_squared_error(y_true, y_pred)))
print('R2:',mr.r2_score(y_true, y_pred))
print('可解释方差EVS:',mr.explained_variance_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average'))

print('\n----------')

## 多输出情形
y_true = [[1, 2, 3],
          [3, 4, 5],
          [5, 6, 7]]

y_pred = [[1.2, 2, 3.6],
          [3.3, 4, 5.7],
          [5.4, 6, 7.8]]


print('\n 多输出情形:')
print('平均绝对误差MAE_平均:',mr.mean_absolute_error(y_true, y_pred))
print('均方误差MSE:',mr.mean_squared_error(y_true, y_pred))
print('均方根误差RMSE:',np.sqrt(mr.mean_squared_error(y_true, y_pred)))
print('R2: ', mr.r2_score(y_true, y_pred))
print('可解释方差EVS:',mr.explained_variance_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average'))


'''
注:其中可加入multioutput参数属性,multioutput='raw_values'是按维度计算指标值;multioutput=[p1,p2...,pn]是加权计算指标值。如
平均绝对误差MAE_按维度:,mr.mean_absolute_error(y_true, y_pred,multioutput='raw_values')
平均绝对误差MAE_加权:,mr.mean_absolute_error(y_true, y_pred,multioutput=[0.25,0.3,0.45])
'''

在这里插入图片描述



pdf下载

End.

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

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

相关文章

Linux网络-守护进程版字典翻译服务器

文章目录 前言一、pid_t setsid(void);二、守护进程翻译字典服务器(守护线程版)效果图 前言 根据上章所讲的后台进程组和session会话,我们知道如果可以将一个进程放入一个独立的session,可以一定程度上守护该进程。 一、pid_t se…

深度学习——TensorBoard的使用

官方文档torch.utils.tensorboard — PyTorch 2.3 documentation TensorBoard简介 TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如&#xff1…

【RISC-V】站在巨人的肩膀上——看开源芯片、软件生态、与先进计算/人工智能/安全的结合

目录 会议议程专题二:RISC-V与先进计算基于RISC-V的后量子密码芯片设计,刘冬生,华中科技大学存算一体集成芯片,刘琦,复旦大学面向端侧大模型计算的RISC-V矩阵扩展架构,复旦大学,韩 军 专题五&am…

HarmonyOS应用开发学习历程(1)初识DevEco Studio

1.create project Bundle name:包名,标识应用程序,默认应用ID也使用该名 Compile SDK:编译时API版本 2.工程目录 AppScope:应用全局所需资源 entry:应用的主模块,含代码、资源 hvigor&#…

Linux网络编程:回顾网络通信

1.数据从应用层到数据链路层的本质 数据的封装: 用户在用户级缓冲区输入数据,经过应用层协议进行序列化成字节流数据,拷贝到传输层的缓冲区。而操作系统在传输层维护了sk_buff这一个结构体,然后data指针指向这段数据的开头&#x…

pycharm使用pip安装依赖包报错 -----Microsoft Visual C++ 14.0 is required解决方法

pip安装第三方库的时候会报错:需要Microsoft Visual C14.0或更高版本。 报错原因 因为pip所安装的包需要使用C编译后才能够正常安装,但是当前安装环境中缺少完整的C编译环境,因此安装失败。 这样解决方案就很明确了,安装完整的C编…

【渗透测试】DC-1靶机实战(上)漏洞扫描获取反弹shell

目录 一、范围界定 二、信息收集 三、目标识别 1)主机发现 2)端口扫描 四. 服务枚举 1)网站首页 2)Web指纹识别 3)nikto报告 4)robots.txt 5)UPGRADE.txt 五. 漏洞映射 1&#xff…

从报名到领证:软考高级【系统架构设计师】报名考试全攻略

本文共计7683字,预计阅读20分钟。包括七个篇章:报名、准考证打印、备考、考试、成绩查询、证书领取及常见问题。 不想看全文的可以点击目录,找到自己想看的篇章进行阅读。 一、报名篇 报名条件要求: 1.凡遵守中华人民共和国宪…

pycharm基本使用(常用快捷键)

0.下载 pycharm官网下载 选择合适的版本,本文以2024.1为例 1.简单应用 常用快捷键 ctrlD 复制当前行 ctrlY 删除当前行 ctrlX 剪切当前行(可用作删除,更顺手) shift↑ 选中多行ctrlshiftF10 运行 shiftF9 调试ctrl/ 注释当前…

华为高斯数据库招聘

西安华为,部门直招数据库开发,测试,维护,hc充足,流程快。 语言不限,专业不限,与业内数据库大佬共事,致力于做数据库行业领军者。 一、岗位职责: 1.负责数据库系统内核模…

springboot 打成jar部署到Linux环境后读取resources下面的文件

方法代码: ClassLoader loader Thread.currentThread().getContextClassLoader();InputStream flagInputStream loader.getResourceAsStream("static/imagesLogo/imageaaa.png");BufferedImage read;read ImageIO.read(flagInputStream);System.out.pr…

【C语言】文件操作(下卷)

前言 在上一卷中,我们知道了文件指针、文件的打开和关闭(打开其他位置的文件)、文件的顺序读写(其中的fputc()、fgetc()),这一卷中,将继续讲解文件操作未讲到的地方。 内容有点多,…

C语言基础学习之位运算

枚举类型 enum 枚举名 { 枚举常量 //名字 }; 注意: 1.c语言中 对于枚举类型 实际上是 当作整型处理的 2.提高代码可读性, 写成枚举,可以做语法检查 3.枚举常量,之间用逗号隔开 4.枚举常量,可以给初值,给了初值之后&…

Verilog实战学习到RiscV - 3 : ICEStick 评估板点灯

收到 ICESTICK 评估板后还没好好玩。先来点个灯,正好把之前介绍过的工具链串起来用一下。 代码 Verilog代码只有一个顶层模块top.v,定义如下: module top(output wire D1,output wire D2,output wire D3,output wire D4,output wire D5);a…

ATFX汇市:加拿大央行或启动首次降息,关注加元贬值风险

ATFX汇市:今日21:45,加拿大央行将公布6月份利率决议结果,当前的基准利率为5%,市场普遍预期其将降息25基点,最新基准利率有可能调降至4.75%。市场人士预期降息的主要依据有两点,其一是加拿大央行行长麦克勒姆…

掌握Postman,轻松调试POST与GET接口:详细安装与实战教程,让你的API测试更高效

0.前言 在确保数据接口的稳定性和可访问性方面,使用专业的接口测试工具至关重要。这些工具不仅简化了测试流程,还提供了无需编写额外代码即可轻松调用和调试接口的能力,从而大大提高了测试效率和准确性。 0.1 Postman 背景介绍 用户在开发或…

vue canvas绘制信令图二、

需求:根据信令图标题的每2个区域之间有无内容来给宽度,无内容区域的间隔要小一些。有内容区域的间隔大一些。 先上效果图: 从上面的效果图可以看出无内容区域的间隔宽度变小了很多。 1、先设置一个最先间隔的宽度:minGapX: 200, 2、然后设置一个 存放有计算后的间隔数据:…

使用python绘制日历热力图

使用python绘制日历热力图 日历热力图效果代码 日历热力图 日历热力图(Calendar Heatmap)是一种数据可视化图表,用于展示时间数据的分布和趋势。它将数据按天映射到一个日历中,通过颜色的变化表示每天的数据值大小。这种图表常用…

多级菜单的实现一

总共分享三种实现多级菜单方式,前面两种是裸机式的,第三种是带有FreeRTOS。 1、首先处在第一级菜单:显示 同时按下一项按钮,flag会变化,光标会根据flag的值,在界面上不同位置显示出光标 按下确定&#xff…

【Angew】:催化材料中贵金属的最大效率-原子分散表面铂

图形摘要:通过在纳米结构 CeO2的 {100}“纳米袋”中稳定表面 Pt2物种(见图) ,可以制备具有最高贵金属分散度的Pt-CeO2材料。此类材料可以大大减少催化剂所需的贵金属量。 摘要:贵金属Pt是催化领域用途最广泛的元素&am…