python实现一元线性回归详细步骤

本文介绍了如何使用Python进行线性回归建模,包括数据准备、模型训练、预测及关键评估指标如MSE、RMSE和MAE的应用。通过实例展示了如何可视化数据和模型效果,并详细解释了这些指标在模型性能中的作用。
摘要由CSDN通过智能技术生成

#建模、预测和可视化

# 导入相关包
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split  # 切分训练集和测试集的函数

import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
matplotlib.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
matplotlib.style.use('ggplot')

# 构造数据
np.random.seed(0)
x = np.linspace(-10,10,100) # 从-10到10之间的100个等差数列
# 设置一个线性回归公式
y = 0.85*x - 0.72
# 创建一组数量为100,均值为0,标准差为0.5的随机数组
e = np.random.normal(loc = 0,scale = 0.5,size = x.shape)
# 将变量y加上这个变量e
y += e
plt.plot(y) # 数据折线图如下:

# 将x转换为二维数组,因为fit方法要求x为二维结构
x = x.reshape(-1,1)

lr = LinearRegression()
# 切分训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25,random_state=0)

# 拟合函数
lr.fit(x_train,y_train)
# 拟合后可利用lr.coef_和lr.intercept_来取出(w)权重和(b)截距
print('权重:',lr.coef_)
print('截距:',lr.intercept_)

# 通过训练集得到了拟合函数,就可以进行预测
y_hat = lr.predict(x_test)
# 可查看对比实际值和预测值
print('实际值:',y_test)
print('预测值:',y_hat)

# 将数据可视化
plt.figure(figsize=(10,5))
# 训练接和测试集都以散点来表示,拟合线用折线表示
plt.scatter(x_train,y_train,s=10,label='训练集',c='b')
plt.scatter(x_test,y_test,s=10,label='测试集',c='g')
plt.plot(x,lr.predict(x),label='拟合线',c='r')
plt.legend() 
# 数据视图如下:

# 用图表示出实际值和预测值
plt.figure(figsize=(10,5))
plt.plot(y_test,label='真实值',c='r',marker='o')
plt.plot(y_hat,label='预测值',c='g',marker='x')
plt.legend()
# 数据视图如下:

#模型评估

MSE:Mean Squared Error

平均方误差是指参数的估计值和参数的实际值之差的平方的期望,可以评价数据的变化程度,MSE越小,说明模型的拟合实验数据能力强。

RMSE :Root Mean Squared Error

根均方误差是均方误差的平方根。

MAE: Mean Absolute Error

平均绝对误差是样本绝对误差的绝对值,能更好的反应预测值误差的实际情况。

# 模型评估
from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score
print("平均方误差(MSE):",mean_squared_error(y_test,y_hat))
>>> 平均方误差(MSE): 0.2738537199293911

print("根均方误差(RMSE):",mean_absolute_error(y_test,y_hat))
>>> 根均方误差(RMSE): 0.4374356584882062

print("平均绝对值误差(MAE):",r2_score(y_test,y_hat))
>>> 平均绝对值误差(MAE): 0.9896372020590347

参考链接:

python代码实现回归分析--线性回归 - 知乎

均方误差(MSE)根均方误差(RMSE)平均绝对误差(MAE)_lighting-CSDN博客

  • 7
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋转小马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值