回归模型的算法性能评价

news/2025/3/17 9:31:29/文章来源:https://www.cnblogs.com/flyup/p/18233387

一、概述

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

二、评价指标

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

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

\[MAE=\frac{1}{n}\sum_{i=1}^{n}{\left| y_i-\hat{y}_i \right|} \]

其中,\(y_i\)为真实值,\(\hat{y}_i\)为预测值。

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

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

\[MSE=\frac{1}{n}\sum_{i=1}^{n}{\left( y_i-\hat{y}_i \right)^{2}} \]

其中,\(y_i\)为真实值,\(\hat{y}_i\)为预测值。

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

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

\[RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}{\left( y_i-\hat{y}_i \right)^{2}}} \]

其中,\(y_i\)为真实值,\(\hat{y}_i\)为预测值。

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

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

\[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}}} \]

其中,\(\bar{y}=\frac{1}{n}\sum_{i=1}^{n}{y_i}\)\(y_i\)为真实值,\(\hat{y}_i\)为预测值。

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

EVS是模型的解释方差得分,与决定系数R2作用一致,用以衡量从波动性角度解释模型对数据的契合程度,取值范围通常为[0,1]。值越接近于1,性能越好;值越接近于0,性能越差。表达式为

\[EVS=1-\frac{Var\{y-\hat{y}\}}{Var\{y\}} \]

其中,\(y_i\)为真实值,\(\hat{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])
'''



End.

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

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

相关文章

还在拼冗长的WhereIf吗?100行代码解放这个操作

通常我们在做一些数据过滤的操作的时候,经常需要做一些判断再进行是否要对其进行条件过滤。普通做法 最原始的做法我们是先通过If()判断是否需要进行数据过滤,然后再对数据源使用Where来过滤数据。 示例如下: if(!string.IsNullOrWhiteSpace(str)) {query = query.Where(a =…

“粘土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图

阿里云函数计算 FC 一键部署火爆全球工作流 AI 生图平台—— ComfyUI ,实现更高质量的图像生成,三步轻松完成“黏土”创意AI画作,晒图赢眼部按摩器等好礼! 活动地址:https://developer.aliyun.com/topic/june/fc?spm=a2c6h.29234099.J_6985717350.4.65997562KE82EH实验准…

医保“视界”大革新:可视化管理系统重塑就医体验

想象一下,在繁忙的医院里,患者和家属不再需要为了查询医保信息而四处奔波,也不再需要为了报销费用而焦头烂额。智慧医保可视化管理系统通过大数据、云计算等先进技术,将医保信息整合到一个平台上,实现了信息的实时更新和可视化展示在数字化浪潮席卷全球的今天,我们的生活…

数据安全之一 加解密介绍

一、场景信息系统不断发展,要求对于其中的数据安全性必须增加保护机制,否则数据泄露将会给企业带来不可估量的损失。基于此,数据的安全包括如下: 1)数据存储的安全存储包括:文件存储(包括含有敏感信息的图片)、数据库中的敏感数据的存储(比如:密码)、配置文件中的敏…

stm32系列--同一定时器双通道捕获

void TIM3_Cap_Init(u16 arr,u16 psc)//定时器3通道2输入捕获配置 {TIM_ICInitTypeDef TIM_ICInitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Pe…

赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。

通过大模型来实现多个智能体进行游戏对局这个想对已经比较成熟了无论是去年惊艳的斯坦福小镇还是比如metaGPT或者类似的框架都是使用智能体技术让大模型来操控,从而让大模型跳出自身“预测下一个token”的文字功能去探索更多的应用落地可能性。不过一直没有真正操作过,直到前…

Ollama,在centos7宿主机上,curl http://宿主机IP:11434 提示拒绝访问 ,但是curl http://localhost:11434 正常

Ollama,在centos7宿主机上,curl http://宿主机IP:11434 提示拒绝访问 ,但是curl http://localhost:11434 正常1.使用 netstat 或 ss 命令在宿主机上检查 11434 端口的状态[root@localhost ~]# netstat -tulnp | grep 11434 tcp 0 0 127.0.0.1:11434 0.…

NFS,smb和数据库文件

nfs的搭建网上有很多,可自行查看 Windows Server2012 R2搭建NFS服务器 - 知乎 (zhihu.com) 其中Windows10家庭版不支持NFS客户端,目前Windows上的协议是V3版本,防火墙上有NFS的选项,端口2049udp和tcp 在客户端上的访问和smb一样,都可映射网络驱动器,使用\\ip\目录方式访问…

JavaDoc生成文档

javaDoc命令是用来生成自己API文档的参数信息:@auchor:作者名 @version:版本号 @since:指明需要最早使用的jdk版本 @param:参数名 @return:返回值情况 @throws:异常抛出情况//主要生成的参数 如:/*** @author 林伟填* @version 1.0* @since 1.8*/public class doc {Str…

心诺安 x TapData:快速搭建云中数仓,助力电商企业实施“以用户为中心的”精细化运营

电商企业如何充分整合并利用自身数据资源,实现高效的数据管理和业务流程优化,迎接用户导向的电商精细化运营时代的挑战。使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量代替 OGG、DSG 等同步工具,「CDC + 流处理 + 数据集成」组合拳,加速仓内数据流转…

Docker安装使用教程

Docker安装使用教程Docker是什么Docker是一个容器化开源平台,它使开发者可以再容器中封装应用程序,以及其依赖的所有组件,包括操作系统、库文件、环境变量等,并以轻量级、可移植的方式进行交付和部署.Docker的三大核心概念是:镜像(Image):镜像是Docker的基本构建块,它是一…

未来5年,只有这种产品团队才能开启上帝视角【玩转IPD】

一家企业如何在波涛汹涌的市场浪潮中站稳脚跟?一个团队如何快速识别风险发现机遇,成为行业的标杆?一家企业如何在波涛汹涌的市场浪潮中站稳脚跟?一个团队如何快速识别风险发现机遇,成为行业的标杆?市场瞬息万变,如何准确地响应市场动向,紧跟用户需求?这些问题,已成为…