ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

回归指标 - MSE均方误差、RMSE均方根误差、MAE平均绝对误差、R2判别系数

2021-10-20 12:03:26  阅读:430  来源: 互联网

标签:误差 绝对误差 RMSE 方根 score error test MSE mean


1.MSE - 均方误差

\[MSE = \displaystyle\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y_i})^2 \]

MSE是用 真实值 - 预测值 然后平方后求和平均,常用线性回归的损失函数

在线性回归时我们希望损失函数最小,从而判断测试集的损失值有多少。

# 数学公式计算
MSE = np.sum((y_pred-y_test)**2)/len(y_test)
# scikit-learn对应的指标
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
reg = LinearRegression().fit(X_train,y_train)
y_pred = reg.predict(X_test)
# 调用mean_squared_error
MSE = mean_squared_error(y_test,y_pred)

2.RMSE - 均方根误差

\[MSE = \sqrt{\displaystyle\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y_i})^2} \]

RMSE在MSE基础上开根号,更好的描述真实值和预测值的数据

常用于衡量模型预测结果的标准

# 接着上面的例子MSE开根号计算得到RMSE
RMSE = MSE ** 0.5

3.MAE - 平均绝对误差

\[MAE = \displaystyle\frac{1}{m}\sum_{i=1}^{m}|(y_i - \hat{y_i})| \]

平均误差的绝对值

常用来反映预测值误差的实际情况(风险度)

# 数学公式计算	
MAE = np.sum(np.absolute(y_pred-y_test))/len(y_test)
# scikit-learn对应的指标 
from sklearn.metrics import mean_absolute_error
# 调用mean_absolute_error
MAE = mean_absolute_error(y_test, y_pred)

4.R2 - 判别系数

\[R^2 = 1 - \frac{SS_{residual}}{SS_{total}}=\frac{\sum_{i}(y_i - f_i)^2}{\sum_{i}(y_i - \bar{y})^2},其中\bar{y}是观数据的平均值:\bar{y} = \frac{1}{n}\sum_{i=1}^{n}y_i \]

其中f是拟合(或建模)值,y是真实值,SSR(Sum of squares of the regression)是残差平方和,由预测数据与标签均值之间差值的平方和构,SST(Total sum of squares)是实际值和均值之间的差值的平方和

判定系数R2测量了回归直线对预测数据拟合的程度,即:

1 - 模型没有捕获到的信息量占真实标签重所带的信息量的比例,所以,两者越接近1越好

调整R2考虑添加更多预测变量(特征)来改善模型

# 3种调用方式
# 方式1:从sklearn.metrics导入r2_score
from sklearn.metrics import r2_score
# 调用r2_score
r2 = r2_score(y_test, y_pred)
# 方式2:使用线性回归LinearRegression的score方法
reg = LinearRegression().fit(X_train,y_train)
# 调用score
r2 = reg.score(X_test,y_test)
# 方式3:从sklearn.metrics导入r2_score
from sklearn.metrics import explained_variance_score
r2 = explained_variance_score(y_test, y_pred)

5.在哪里使用哪个指标来确定机器学习模型的性能?

  • MAE:通常用于在连续变量数据上测量性能。它对异常值不是很敏感,因为它不会惩罚错误。

  • MSE:最常用的指标之一,当数据集包含大量噪声时,它最没用。但当数据集包含异常值(太高或太低)时,它最有用。

  • RMSE:在RMSE中,误差在平均之前先平方,这意味着RMSE为更大的错误分配更高的权重。这表明当存在大错误并且它们会极大地影响模型的性能时,RMSE更有用。RMSE比MSE更广泛用于评估回归模型于其他随机模型的性能,因为它的因变量(Y轴)具有相同的单位。

  • R2: R2评估性能最容易让人一目了然地了解你的模型的性能。

总体来说,MAE、MSE 和 RMSE 的值越低,意味着回归模型的准确度越高。然而,R 平方值越高被认可越高。

相关参考:

回归指标

https://www.jianshu.com/p/9ee85fdad150

https://www.cnblogs.com/nxf-rabbit75/p/10415812.html

https://medium.com/analytics-vidhya/mae-mse-rmse-coefficient-of-determination-adjusted-r-squared-which-metric-is-better-cd0326a5697e

https://www.studytonight.com/post/what-is-mean-squared-error-mean-absolute-error-root-mean-squared-error-and-r-squared

https://towardsdatascience.com/which-evaluation-metric-should-you-use-in-machine-learning-regression-problems-20cdaef258e

https://en.wikipedia.org/wiki/Coefficient_of_determination

标签:误差,绝对误差,RMSE,方根,score,error,test,MSE,mean
来源: https://www.cnblogs.com/Rosaany/p/15428282.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有