回归算法评估指标MSE、RMSE、MAE、R-Squared

一、MSE 均方误差

在这里插入图片描述
即(真实值-预测值)的平方/测试集个数
其实(真实值-预测值)的平方 就是线性回归的损失函数,线性回归的目的就是为了让损失函数最小化。但这种判断方式是会放大误差的,即本身误差越大的平方后会更大。所以从这也可以看出,损失函数是为了减小最大的那个误差。

二、RMSE 均方根误差

在这里插入图片描述
即MSE开根号,使结果的单位和数据集一致,更好描述

三、MAE 平均绝对误差

在这里插入图片描述
四、R-Squared
以上3种评价方式,针对不同的模型,有不同的单位。比如米,元。这些不同的单位缺乏可读性。
衡量分类算法通常使用准确率进行衡量,那么衡量回归算法就引入了R-Squared
在这里插入图片描述
化简上面公式
在这里插入图片描述
分子就变成了我们的均方误差MSE,下面分母就变成了方差。
这里的基准模型即取平均值。分式的分母为方差公式,若R**2<0,即分子大于分母,预测模型误差大于基准模型。

五、实现代码
#这里我们使用sklearn数据集中的波士顿房产数据
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datastes
boston=datasets.load_boston()
x=boston.data[:,5]
y=boston.target
plt.scatter(x,y)
plt.show()

在这里插入图片描述

#这里看出y=50的一行数据比较奇怪,因为可能设置了一个上限,所有大于50的y都设置成了50,我们不取这部分值
x=x[y<50.0]
y=y[y<50.0]
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=666)
from sklearn.linear_model import LinearRegression
reg=LinearRegression()
x_train=np.array(x_train).reshape(-1,1)#因为我们只对一个特征进行预测,改变成数组形式
reg.fit(x_train,y_train)
reg.coef_ #即a
reg.intercept_ #即b 截距
#进行可视化
plt.scatter(x_train,y_train)
plt.plot(x_train,reg.predict(x_train),color='r')
plt.show()
x_test=np.array(x_test).reshape(-1,1)
y_predict=reg.predict(x_test)

在这里插入图片描述

#MSE 均方误差
mse_test=np.sum(y_test-y_predict)**2/len(y_test)
#RMSE 均方根 
from math import sqrt
rmse_test=sqrt(mse_test)
#MAE 平均绝对误差
mae_test=np.sum(np.absolute(y_test-y_predict))/len(y_test)
#R-Square
R_test=1-mse_
test/np.var(y_test)

#使用sklearn中的方法
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import r2_score
#MSE
mean_squared_error(y_test,y_predict)
#MAE
mean_absolute_error(y_test,y_predict)
#R-Square
r2_score(y_test,y_predict)
#线性回归中采用的评分标准就是R-Square
reg.score(x_test,y_test)

在这里插入图片描述
转载:http://www.pianshen.com/article/7423191155/

回归模型的评估指标包括MAE(平均绝对误差)、MSE(均方误差)和RMSE(均方根误差)。MAE是预测值与实际值之间的绝对差值的平均值,MSE是预测值与实际值之间差值的平方的平均值,RMSEMSE的平方根。 为了判断回归模型的好坏,我们希望这些误差指标尽可能小。如果MAEMSERMSE都较小,说明模型的预测结果与实际值较接近,模型的拟合效果较好。 以下是计算MSE的Python代码示例: ```python from sklearn.metrics import mean_squared_error def MSE(Y_real, Y_pre): return mean_squared_error(Y_real, Y_pre) ``` 在这个代码中,`Y_real`是实际值,`Y_pre`是预测值。通过调用`mean_squared_error`函数,可以计算出MSE的值。 需要注意的是,对于RMSE,可以通过对MSE的结果取平方根得到。因此,RMSE的计算可以在MSE的基础上进行。 希望这个回答对您有帮助! #### 引用[.reference_title] - *1* *2* [回归问题的评价指标 MAE MSE RMSE R2 score Adjusted R2 score 和 重要知识点总结](https://blog.csdn.net/HzauTriste/article/details/127562028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [回归模型评估指标MAEMSERMSE、R²、MAPE)](https://blog.csdn.net/y15659037739l/article/details/123971286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值