1线性回归 入门学习

案例介绍


本案例将使用波士顿房屋数据集,来进行线性回归分析。
该数据集记录了波士顿地区房屋的一些特征以及对应的房屋价格,我们将尝试根据这些特征来预测房屋的价格。线性回归是一种用于建立变量之间线性关系的预测模型的统计方法,它将自变量和因变量之间的关系表示为一条直线。

算法原理


  在线性回归中,我们尝试找到最佳拟合直线来描述自变量(特征)和因变量(房屋格)之间的关系。我们假设自变量和因变量之间存在以下线性关系:y=mx+c
  其中,y是因变量(房屋价格),2是自变量(特征),m 和c分别是直线的斜率和截距。我们的目标是找到最佳的  和 c 来使得拟合直线与实际观测的房屋价格尽可能接近。我们将使用最小二乘法来估计拟合直线。
  最小二乘法的目标是最小化残差平方和(Residual Sum of Squares,RSS)。其中,残差表示观测值与估计值之间的差异。我们通过最小化残差平方和来找到最佳的拟合直线。

数据集


我们将使用波士顿房屋数据集,该数据集已经内置在scikit-learn库中。数据集包含506个样本,每个样本有13个特征(如犯罪率、住宅平均房间数等)和一个目标变量(房屋价格)。


计算步骤


1:导入必要的库和数据集
2.数据准备:分割数据集为特征(X)和目标变量(y)
3.模型训练:使用线性回归模型拟合数据
4.模型评估:计算拟合直线的性能指标(如均方误差)
5.结果可视化:绘制拟合直线和实际观测值的散点图

# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# 加载波士顿房屋数据集
boston = load_boston()

# 数据准备
X = boston.data
y = boston.target

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型实例
model = LinearRegression()

# 模型训练
model.fit(X_train, y_train)

# 模型预测
y_pred = model.predict(X_test)

# 计算均方误差
mse = np.mean((y_pred - y_test) ** 2)
print("均方误差:", mse)

# 结果可视化
plt.scatter(y_test, y_pred)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=2)
plt.xlabel('actual_price')
plt.ylabel('predict_price')
plt.title('liner')
plt.show()

代码细节


1.首先导入了必要的库和模块,包括numpy(用于数值计算)、matplotlib(用于绘图)、sklearn.datasets中的load boston函数(用于加载波士顿房屋数据集)、sklearn.model selection中的train test split函数(用于将数据集划分为训练集和测试集)、sklearn.linear _model中的LinearRegression模型(线性回归模型)。
2.使用 1oad boston()函数加载波士顿房屋数据集,并将数据集的特征存储在X变量中,将目标变量(房屋价格)存储在y变量中。
调用 train_test_split()函数将数据集划分为训练集和测试集,其中 test_size=0.2 表示将20%的数据3.
划分为测试集,random state=42 用于设置随机种子,以确保每次划分的结果一致。
4.
创建线性回归模型的实例,使用 LinearRegression()函数。
调用模型的 fit()方法,使用训练集数据进行模型训练。5.
6.使用训练好的模型对测试集数据进行预测,使用型的 predict()方法
7.计算均方误差(MSE),使用numpy的mean函数计算预测值与实际值之间差的平方的平均值。
8.使用matplotib库绘制散点图,其中横轴是实际房屋价格,纵轴是预测房屋价格。拟合直线由黑色虚线表示,实际房屋价格与预测房屋价格相等的点将位于这条直线上方。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.Boss.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值