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说明自变量越能解释因变量的方差变化,值越小则说明效果越差。假设是真实值,是相对应的预测值,是方差。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是相对应的预测值,的均值,则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 - 博客园

【机器学习】回归模型评价指标原理与基于sklearn的实现相关推荐

  1. 【实战】——基于机器学习回归模型对广州二手房价格进行分析及模型评估

    目录 1.数据导入 2.数据清洗 2.1.变量选取 2.2.空值处理 2.3.类型转化 2.4.数据再处理 3.机器学习sklearn的实现 3.1.训练集和测试集的拆分 3.2.数据的标准化 3.3 ...

  2. 机器学习回归模型精度_机器学习模型实施精度召回和概率截止。

    机器学习回归模型精度 Congratulations on completing your Machine Learning (ML) pipeline! In the second part of ...

  3. 回归模型评价指标:MSE、RMSE、MAE、R2 score

    回归模型评价指标:MSE.RMSE.MAE. R 2 R^2 R2 score 回归模型评价指标:MSE.RMSE.MAE.R2 score 前言 平均绝对误差(MAE) 均方误差(MSE) 均方根误 ...

  4. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  5. 模型评估 | 机器学习回归模型评价(RMSE、MAE、MAPE)

    模型评估 | 机器学习回归模型评价(RMSE.MAE.MAPE) RMSE.MAE.MAPE function result(true_value,predict_value,type) disp(t ...

  6. 模型评估 | 机器学习回归模型评价(RMSE、MAPE、R^2、NSE)

    模型评估 | 机器学习回归模型评价(RMSE.MAPE.R^2.NSE) RMSE.MAPE.R^2.NSE % RMSE RMSE_test = sqrt(sumsqr(output_test - ...

  7. 机器学习分类模型评价指标之Accuracy、Precision、Recall、F-Score、P-R Curve、AUC、AP 和 mAP

    前文:https://www.cnblogs.com/odesey/p/16902836.html 介绍了混淆矩阵.本文旨在说明其他机器学习模型的评价指标. 1. 准确率(Accuracy-Acc) ...

  8. 机器学习分类模型评价指标之ROC 曲线、 ROC 的 AUC 、 ROI 和 KS

    前文回顾: 机器学习模型评价指标之混淆矩阵 机器学习模型评价指标之Accuracy.Precision.Recall.F-Score.P-R Curve.AUC.AP 和 mAP 图裂的话请参考:ht ...

  9. logistics回归模型的原理和实现

    机器学习基础(七) Logistics回归 原理 代码实现 Logistics回归 原理 Logistics回归是统计学习中的经典分类方法,是一种广义的线性回归模型.它经常被使用于二分类问题的解决上, ...

最新文章

  1. SpringBoot+flowable快速实现工作流,so easy!
  2. php函数介绍,PHP函数介绍_PHP教程
  3. CI中PHP写法规范(不断更新)
  4. jquery改变css,改变style
  5. SPOJ 4564 Chop Ahoy! Revisited!
  6. redhat7.0配置网卡
  7. 【bzoj3160】万径人踪灭
  8. 前端学习(4):chome浏览器
  9. 精灵说科技 java,Java动画动画(精灵)
  10. 禁止QQ自动转义表情字符
  11. jQuery按住滑块拖动验证插件
  12. 初学者c语言编程软件_初学者的C编程语言
  13. 宝塔备份文件到ftp服务器上,宝塔自动备份网站到FTP空间,宝塔备份ftp空间
  14. python虚拟变量回归_Python中使用虚拟变量的OLS最佳解决方案?
  15. 微信小程序音频的使用:wx.createInnerAudioContext的使用
  16. 分峰截幅c语言算法,光纤布拉格光栅传感解调中的寻峰算法.docx
  17. C语言指针,数组,函数
  18. git版本回退的几种方式
  19. Kickstart无人值守安装
  20. 用Canvas画漫天繁星吧~

热门文章

  1. python 强制结束线程
  2. 最近在看些远程办公的机会
  3. 微信群控SCRM客服系统SDK定制开发教程
  4. 简易cpu设计_为简单而设计
  5. nRF52832 SPI和IIC外设不可同时使用
  6. Max485使用说明
  7. umy-ui使用手册
  8. error occurred at recursive SQL level 1错误
  9. Google Adsense西联汇款中国邮政储蓄提款详细步骤
  10. rabbitmq安装时遇到的问题总结