十分钟掌握回归算法的评估指标

简介: 什么是回归算法?回归算法就是对历史数据进行拟合,形成拟合方程。接下来使用该方程对新数据进行预测。如果是一元数据的拟合方程,则拟合一条线,如果数据是二元数据,那么它的拟合方程就是一个拟合平面,对于更高维的数据,它的拟合方程将更加复杂。

什么是回归算法?


回归算法就是对历史数据进行拟合,形成拟合方程。接下来使用该方程对新数据进行预测。如果是一元数据的拟合方程,则拟合一条线,如果数据是二元数据,那么它的拟合方程就是一个拟合平面,对于更高维的数据,它的拟合方程将更加复杂。


什么是回归算法的评估指标?


对于回归算法,我们评价它的好坏,就是看它的预测结果与我们的真实结果的差异大小。在回归算法中,我们最常用的评估指标有:平均绝对值误差,均方误差,均方根误差,可决系数等。


常见的回归算法的评估指标


平均绝对值误差(MAE)

均绝对值误差就是计算每一个样本的预测值和真实值的差的绝对值,然后求和再取平均值。 其公式为:

MAE(y,y^)=1m∑i=1m(∣yi−f(xi)∣)MAE(y, \hat {y}) = \frac{1}{m} \sum_{i=1}^m{(|y_i - f(x_i)|)}MAE(y,y^)=m1i=1m(yif(xi))

其中,yiy_iyi为真实值,f(xi)和y^f(x_i)和\hat {y}f(xi)y^为模型的预测值。

均方误差(MSE)

均方误差就是计算每一个样本的预测值与真实值差的平方,然后求和再取平均值。 其公式为:

MSE(y,y^)=1m∑i=1m(yi−f(xi))2MSE(y, \hat {y}) = \frac{1}{m} \sum_{i=1}^m{(y_i - f(x_i))^2}MSE(y,y^)=m1i=1m(yif(xi))2

均方根误差(RMSE)

均方根误差就是在均方误差的基础上再开方。 其公式为:

RMSE(y,y^)=1m∑i=1m(yi−f(xi))2RMSE(y, \hat {y}) = \sqrt {\frac{1}{m} \sum_{i=1}^m{(y_i - f(x_i))^2}}RMSE(y,y^)=m1i=1m(yif(xi))2

均值平方对数误差(MSLE, Mean Squared Logarithmic Error)

MSLE计算平方对数误差或损失的期望。

MSLE(y,y^)=1nsamples∑i=0nsample−1(log⁡e(1+yi)−log⁡e(1+y^i))2MSLE(y, \hat {y}) = \frac {1} {n_{samples} } \sum_{i=0}^{n_{sample}-1}(\log_e(1+y_i)-\log_e(1+ \hat y_i))^2MSLE(y,y^)=nsamples1i=0nsample1(loge(1+yi)loge(1+y^i))2

平均绝对百分比误差(MAPE, Mean Absolute Percentage Error)

MAPE是计算对相对误差损失的预期。所谓相对误差,就是绝对误差和真值的百分比

MAPE(y,y^)=1nsamples∑i=0nsample−1∣yi−y^i∣max(ϵ,∣yi∣)MAPE(y, \hat {y}) = \frac {1} {n_{samples} } \sum_{i=0}^{n_{sample}-1} \frac {|y_i- \hat y_i|}{max(\epsilon, |y_i|)}MAPE(y,y^)=nsamples1i=0nsample1max(ϵ,yi)yiy^i

其中 ϵ\epsilonϵ是一个任意小的正数,以避免当 y 为零时,分母为零,出现未定义的结果。

中位数绝对误差(Median Absolute Error)

中位数绝对误差非常有趣,因为它可以减弱异常值的影响。 通过取目标和预测之间的所有绝对差值的中值来计算损失。

MedAE(y,y^)=medain(∣y1−y^1∣,...,∣yn−y^n∣)MedAE(y, \hat {y}) = medain(|y_1- \hat y_1|,...,|y_n- \hat y_n|)MedAE(y,y^)=medain(y1y^1,...,yny^n)

可解释变异(Explained variance)

可解释变异在统计学中是指给定数据中的变异能被数学模型所解释的部分。通常会用方差来量化变异,故又称为可解释方差

备注:

变异又可理解为离散程度。

在统计学里,离散程度dispersion)是指一个分布压缩和拉伸的程度。

离散程度主要有[方差]、[标准差]和[四分位距]等。

离散程度与位置或者[集中趋势]相对。

可解释方差指标衡量的是所有预测值和样本之间的差的分散程度与样本本身的分散程度的相近程度。本身是分散程度的对比。

explainedvariance(y,y^)=1−Var{y−y^}Var{y}=1−样本值与预测值之差的方差样本方差=explained_variance(y, \hat {y}) = 1- \frac {Var \{y- \hat y \}} { Var \{y\}}=1- \frac {样本值与预测值之差的方差} {样本方差} =explainedvariance(y,y^)=1Var{y}Var{yy^}=1=

explainedvariance(y,y^)=1−1n∑i=1n(zi−z‾i)21n∑i=1n(yi−y‾)2explained_variance(y, \hat {y}) = 1 - \frac { \frac {1} {n} \sum_{i=1}^n {(z_i - \overline z_i)^2}} { \frac {1} {n} \sum_{i=1}^n{(y_i-\overline y)^2}}explainedvariance(y,y^)=1n1i=1n(yiy)2n1i=1n(zizi)2

其中,z为样本值与预测值之差(z=y−y^z=y- \hat yz=yy^)。

值最大为1,越接近1越好,值越大表示预测和样本值的分散分布程度越相近,值越低越差。

决定系数R^2(R-Squared)

决定系数R2R^2R2 用于度量因变量的变异中可由自变量解释部分所占的比例,以此来判断统计模型的解释力。它将已解释的方差除以总方差,代表了总方差被预测变量所解释或决定的比率

决定系数R2R^2R2的值为0~1之间的值,R2R^2R2越接近于1,说明模型的效果越好,越接近于0,说明的模型效果越差,当然R2R^2R2也存在负值,此时说明模型的效果非常的差。

其公式为:

R2(y,y^)=1−∑i=1n(yi−y^i)2∑i=1n(yi−y‾)2=1−1n∑i=1n(yi−y^i)21n∑i=1n(yi−y‾)2=1−MSEVarR^2(y, \hat {y}) = 1 - \frac { \sum_{i=1}^n { (y_i - \hat y_i)^2 } }{ \sum_{i=1}^n{(y_i-\overline y)^2}} =1 - \frac { \frac {1} {n} \sum_{i=1}^n { (y_i - \hat y_i)^2 } }{ \frac {1} {n} \sum_{i=1}^n{(y_i-\overline y)^2}} = 1 - \frac {MSE} {Var}R2(y,y^)=1i=1n(yiy)2i=1n(yiy^i)2=1n1i=1n(yiy)2n1i=1n(yiy^i)2=1VarMSE

其中,y‾\overline y yyyy的平均值,分子部分表示真实值与预测值的平方差之和,类似于均方误差 MSE;分母部分表示真实值与均值的平方差之和,类似于方差 Var。


各个评价指标的对比和使用


以上提到的度量,除了R Squared,都是越小越好。 使用哪种取决于目标,多种度量综合考虑则允许我们更深入的分析模型。

针对单个指标使用的情况

  • MAE和MedAE基于绝对误差,如果看重真实值和预测值的绝对误差,则选用MAE或MedAE,两者分别是误差的均值和中位数。MAE对极端值比较敏感
  • 如果看重真实值和预测值的差的平方,则选用MSE或RMSE。
  • 如果存在不同样本的真实值有量级差或者更加关注预测和真实值的百分比差异的情况,最好选用MAPE.
  • 如果y具有随着x进行指数变动的趋势时,适合用MSLE。
  • 如果模型希望的是找到能够解释目标y变动的因变量,则选用R Squared更合适。

针对多个指标配合使用的情况

  • MAE和RMSE一起使用,可以看出样本误差的离散程度。比如RMSE远大于MAE时,可以得知不同样例的误差差别很大。
  • MAE和MAPE一起使用,再结合 y‾\overline yy,可以估算模型对不同数量级样例的拟合程度。比如,MAE远大于 MAPE∗y‾ MAPE * \overline yMAPEy ,则可能是模型对真实值小的样本预测更准。可以考虑为不同数量级的样本建立不同的模型。


相关文章
|
数据采集 算法 数据可视化
基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好
本文介绍了基于Python实现的k-means聚类分析算法,并通过微博考研话题的数据清洗、聚类数量评估、聚类分析实现与结果可视化等步骤,展示了该算法在文本聚类领域的应用效果。
697 1
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
381 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
348 4
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
【7月更文挑战第23天】在Python编程中,掌握算法复杂度—时间与空间消耗,是提升程序效能的关键。算法如冒泡排序($O(n^2)$时间/$O(1)$空间),或使用Python内置函数找最大值($O(n)$时间),需精确诊断与优化。数据结构如哈希表可将查找从$O(n)$降至$O(1)$。运用`timeit`模块评估性能,深入理解数据结构和算法,使Python代码更高效。持续实践与学习,精通复杂度管理。
188 9
|
机器学习/深度学习 数据采集 算法
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
|
机器学习/深度学习 算法
GBDT算法超参数评估(二)
GBDT算法超参数评估关注决策树的不纯度指标,如基尼系数和信息熵,两者衡量数据纯度,影响树的生长。默认使用基尼系数,计算快速,而信息熵更敏感但计算慢。GBDT的弱评估器默认最大深度为3,限制了过拟合,不同于随机森林。由于Boosting的内在机制,过拟合控制更多依赖数据和参数如`max_features`。相比Bagging,Boosting通常不易过拟合。评估模型常用`cross_validate`和`KFold`交叉验证。
|
机器学习/深度学习 算法 搜索推荐
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
260 0
|
算法 物联网 调度
操作系统调度算法的演进与性能评估
本文深入探讨了操作系统中进程调度算法的发展轨迹,从早期的先来先服务(FCFS)到现代的多级队列和反馈控制理论。通过引用实验数据、模拟结果和理论分析,文章揭示了不同调度策略如何影响系统性能,特别是在响应时间、吞吐量和公平性方面。同时,本文也讨论了在云计算和物联网等新兴领域,调度算法面临的挑战和未来的发展方向。
|
5月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
500 0
|
5月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
328 2