首页 > 编程语言 >回归模型的算法性能评价

回归模型的算法性能评价

时间:2024-06-05 17:11:13浏览次数:16  
标签:pred 模型 算法 MAE mr print 评价 true hat

一、概述

在一般形式的回归问题中,会得到系列的预测值,它们与真实值(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.

标签:pred,模型,算法,MAE,mr,print,评价,true,hat
From: https://www.cnblogs.com/flyup/p/18233387

相关文章

  • 算法的时间复杂度和空间复杂度
    目录1.算法效率1.1如何衡量一个算法的好坏1.2算法的复杂度1.3复杂度在校招中的考察2.时间复杂度2.1时间复杂度的概念2.2大O的渐进表示法2.3常见时间复杂度计算举例实例1:实例2:实例3:实例4:实例5:实例6:实例7:实例8:3.空间复杂度实例1:实例2:实例3:4.常见复杂度对比1.......
  • 赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。
    通过大模型来实现多个智能体进行游戏对局这个想对已经比较成熟了无论是去年惊艳的斯坦福小镇还是比如metaGPT或者类似的框架都是使用智能体技术让大模型来操控,从而让大模型跳出自身“预测下一个token”的文字功能去探索更多的应用落地可能性。不过一直没有真正操作过,直到前段时间......
  • 代码随想录算法训练营第五天 | 哈希表基础、有效字母异位、两个数组交集、快乐数
    哈希表基础理论https://programmercarl.com/哈希表理论基础.html#哈希表242有效字母异位词题https://leetcode.cn/problems/valid-anagram/description/242代码随想录解析https://programmercarl.com/0242.有效的字母异位词.html#算法公开课349两个数组的交集https://leetc......
  • 抖音面试:说说延迟任务的调度算法?
    Netty框架是以性能著称的框架,因此在它的框架中使用了大量提升性能的机制,例如Netty用于实现延迟队列的时间轮调度算法就是一个典型的例子。使用时间轮调度算法可以实现海量任务新增和取消任务的时间度为O(1),那么什么是时间轮调度算法呢?接下来我们一起来看。1.延迟任务实现在......
  • 代码随想录算法训练营第二十七天 | 39.组合总和
    39.组合总和题目链接文章讲解视频讲解classSolution{private:vector<int>combine;vector<vector<int>>result;intcount=0;public:vector<vector<int>>combinationSum(vector<int>&candidates,inttarget){......
  • 大语言模型应用指南:三类微调方法
    大语言模型应用指南:三类微调方法1.背景介绍1.1大语言模型的发展历程近年来,随着深度学习技术的快速发展,大语言模型(LargeLanguageModels,LLMs)在自然语言处理领域取得了显著的进展。从GPT-2、BERT到GPT-3、PaLM等,大语言模型的规模和性能不断提升,展现出了强大的语言......
  • Docker部署深度学习模型
    Docker部署深度学习模型基础概念DockerDocker是一个打包、分发和运行应用程序的平台,允许将你的应用程序和应用程序所依赖的整个环境打包在一起。比如我有一个目标检测的项目,我想分享给朋友,那么他首先需要在自己的电脑上配置好显卡驱动、CUDA、CuDNN,在拿到我的项目后,还需要安......
  • 智能推荐算法应用:如何提升淘宝在线扭蛋机用户购物体验
    在淘宝的在线扭蛋机平台上,用户的购物体验至关重要。为了提升这一体验,我们引入了智能推荐算法,帮助用户发现他们可能感兴趣的扭蛋产品。这一技术的应用不仅提高了用户的购物效率,还大大增强了用户的购物乐趣。一、智能推荐算法的核心智能推荐算法的核心在于利用机器学习技术对......
  • 算法基础之哈希表
    大家好,这里是教授.F什么是哈希表:   哈希表其实就是数组的pro版本。数组有下标,每个下标对应着一个值。哈希表也类似,哈希表有很多哈希值,然后每一个哈希值都会对应着一个值。就是这样:hash(key)哈希表的要求:    1.key必须是不变的。这点非常重要。所谓不可变类......
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.05.25-2024.05.31
    文章目录~1.EmpoweringVisualCreativity:AVision-LanguageAssistanttoImageEditingRecommendations2.Bootstrap3D:Improving3DContentCreationwithSyntheticData3.Video-MME:TheFirst-EverComprehensiveEvaluationBenchmarkofMulti-modalLLMsin......