衡量线性回归算法的指标

一、MSE

在这里插入图片描述
但MSE均方误差有个缺点 就是MSE与y的量纲不同 比如y的量纲为万元 那MSE的量纲就是万元的平方。

二、RMSE

在这里插入图片描述

三、MAE

RMSE的量纲与原始y的量纲相同
在这里插入图片描述

四、mse,rmse,mae代码实现

注意:线性回归衡量指标
在这里使用波士顿房价这个数据集 并且只用了RM平均房间这个样本特征

#MSE
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets

boston=datasets.load_boston()
boston.DESCR
boston.feature_names
x=boston.data[:,5]  #只用平均房间数这一个样本特征
y=boston.target
x=x[y<50] #这里是为了去掉一些不真实的点 可以自己绘图看 图中会有一些最大值50 该数据不真实
y=y[y<50]
from sklearn.metrics import mean_squared_error,mean_absolute_error
from sklearn.model_selection import train_test_split

x_train,x_test,y_train,y_test=train_test_split(x,y)
plt.scatter(x_train,y_train)
plt.plot(x_train,reg.predict(x_train),color="red")
from SimpleLinearRegression1 import SimpleLinearRegression1
reg=SimpleLinearRegression1()
reg.fit(x_train,y_train)
y_predict=reg.predict(x_test)
mse=mean_squared_error(y_test,y_predict)
from math import sqrt
rmse=sqrt(mse)
mae=mean_absolute_error(y_test,y_predict)
print(mse,rmse,mae)

结果:
在这里插入图片描述

	注意到:rmse与mae的量纲相同,但是rmse却比mae的值要大,这是由于两个计算方式不同。rmse有个平方,
	这会放大真实值与预测值之间的误差。除了绝对值不可导之外,这也就是为什么我们计算最小损失函数要使用平方。因为这更能说明误差的最小值。
	rmse会放大真实值与预测值之间的误差,能更好的说明结果之间的误差。
	选择相对而言会得到更大误差的算法来求取最小损失函数会使我们得到的线性方程与真实值更拟合。
	sklearn中有mse与mae的api但没有rmse的api,对mse取根号就是rmse

五、相对而言 最好的评价指标 R Squared

不论是rmse还是mae ,如果我们将其运用到两个不同的指标上,比如房价和分数,我们得到的是不同的值,无法评判到底这个模型是用在哪个问题上更好。
结合分类问题中的准确度accuracy 它的范围是0-1 1最好 0最差。
我们是否也可以做出一个统一评判标准呢?
这里就出现了 R 2
在这里插入图片描述
在这里插入图片描述

	我们可以知道 使用y的均值这个模型来预测必然会产生很大的误差

在这里插入图片描述

	在这里 r2是可能小于0的,证明我们的模型还不如基本模型,此时可能不存在线性关系。

在这里插入图片描述

 var即方差 std是标准差

1、R squared 代码实现

import numpy as np
#自己计算
r2=1-mean_squared_error(y_test,y_predict)/np.var(y_test)
#sklearn中有api 直接调用
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
r=r2_score(y_test,y_predict)

在MATLAB中,可以使用自带的回归函数`regress`来进行线性回归算法的实现。该函数用于拟合数据点X和y,其中X是一个矩阵,每一行代表一个样本,每一列代表一个特征;y是一个向量,代表对应样本的目标变量。 使用`regress`函数进行线性回归的步骤如下: 1. 准备数据:将自变量放入矩阵X中,将因变量放入向量y中。 2. 调用`regress`函数:使用如下语法调用`regress`函数进行线性回归的拟合:`b = regress(y, X)`。该函数将返回一个系数向量b,其中每个元素代表对应特征的回归系数。 3. 分析结果:根据得到的回归系数b,可以计算预测值或进行相关的统计分析。 除了线性回归,MATLAB还提供了其他回归模型的函数和方法,如多元线性回归、非线性回归、逐步回归等。这些方法可以根据具体问题的需求选择适当的回归模型。 在统计学中,显著性水平α是一种用于判断统计结果是否具有显著性的指标。它代表了拒绝原假设的程度,通常取0.05或0.01。P值是衡量观察到的样本数据在原假设下得到的结果或更极端结果的概率。如果P值小于显著性水平α,就可以拒绝原假设,认为观察到的差异是显著的。 在MATLAB中,可以通过统计工具箱中的函数来计算回归模型的显著性水平α和P值。例如,可以使用`fitlm`函数进行线性回归,并通过`anova`函数获取显著性检验的结果。 总结起来,要在MATLAB中实现线性回归算法,可以使用自带的回归函数`regress`。此外,还可以使用统计工具箱中的其他函数来进行显著性检验和分析结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值