码迷,mamicode.com
首页 > 其他好文 > 详细

回归评价指标MSE、RMSE、MAE、R-Squared

时间:2019-02-21 23:17:30      阅读:1112      评论:0      收藏:0      [点我收藏+]

标签:负数   描述   bsp   差值   .net   http   参考   均方根误差   问题   

分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍

1、MSE(Mean Squared Error)均方误差

这里的y是测试集上的。

用 真实值-预测值 然后平方之后求和平均。

猛着看一下这个公式是不是觉得眼熟,这不就是线性回归的损失函数嘛!!! 对,在线性回归的时候我们的目的就是让这个损失函数最小。那么模型做出来了,我们把损失函数丢到测试集上去看看损失值不就好了嘛。简单直观暴力!

y_preditc=reg.predict(x_test) #reg是训练好的模型
mse_test=np.sum((y_preditc-y_test)**2)/len(y_test) #跟数学公式一样的

  

2、RMSE(Root Mean Squared Error)均方根误差

这不就是MSE开个根号么。有意义么?其实实质是一样的。只不过用于数据更好的描述。
例如:要做房价预测,每平方是万元(真贵),我们预测结果也是万元。那么差值的平方单位应该是 千万级别的。那我们不太好描述自己做的模型效果。怎么说呢?我们的模型误差是 多少千万?。。。。。。于是干脆就开个根号就好了。我们误差的结果就跟我们数据是一个级别的,在描述模型的时候就说,我们模型的误差是多少万元。

rmse_test=mse_test ** 0.5

  

3、MAE (Mean absolute Error)平均绝对误差

mae_test=np.sum(np.absolute(y_preditc-y_test))/len(y_test)

  

4、R-Squared

上面的几种衡量标准针对不同的模型会有不同的值。比如说预测房价 那么误差单位就是万元。数子可能是3,4,5之类的。那么预测身高就可能是0.1,0.6之类的。没有什么可读性,到底多少才算好呢?不知道,那要根据模型的应用场景来。
看看分类算法的衡量标准就是正确率,而正确率又在0~1之间,最高百分之百。最低0。如果是负数,则考虑非线性相关。很直观,而且不同模型一样的。那么线性回归有没有这样的衡量标准呢?答案是有的。
那就是R Squared也就R方

1- mean_squared_error(y_test,y_preditc)/ np.var(y_test)

  

 

Scikit-learn中的各种衡量指标

from sklearn.metrics import mean_squared_error #均方误差
from sklearn.metrics import mean_absolute_error #平方绝对误差
from sklearn.metrics import r2_score#R square
#调用
mean_squared_error(y_test,y_predict)
mean_absolute_error(y_test,y_predict)
r2_score(y_test,y_predict)

  

参考文献:

【1】回归评价指标MSE、RMSE、MAE、R-Squared

【2】回归模型的几个评价指标

 

回归评价指标MSE、RMSE、MAE、R-Squared

标签:负数   描述   bsp   差值   .net   http   参考   均方根误差   问题   

原文地址:https://www.cnblogs.com/nxf-rabbit75/p/10415812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!