线性回归详解及Python实现(利用sklearn)

机器学习入门:线性回归详解及Python实现

本文将介绍机器学习中最基础的算法之一——线性回归。我们将深入探讨线性回归的原理,包括模型假设、损失函数和参数估计方法。随后,我们将使用Python和Scikit-learn库实现一个简单的线性回归模型,并使用实例演示其在生成的数据上的应用

模型假设

线性回归模型假设因变量 y y y与自变量 x x x之间的关系可以用以下线性方程表示:
y = β 0 + β 1 ⋅ X 1 + β 2 ⋅ X 2 + … + β n ⋅ X n + ε y=\beta_0+\beta_1 \cdot X_1+\beta_2 \cdot X_2+\ldots+\beta_n \cdot X_n+\varepsilon y=β0+β1X1+β2X2++βnXn+ε

其中:

  • y y y 是因变量 (待预测值);
  • X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1,X2,,Xn 是自变量 (特征) ;
  • β 0 , β 1 , … , β n \beta_0, \beta_1, \ldots, \beta_n β0,β1,,βn 是模型的参数,表示截距和各自变量的系数;
  • ε \varepsilon ε 是误差项,表示模型不能解释的随机噪声。

损失函数

在线性回归中,常用的损失函数是均方误差 ( M S E MSE MSE) ,它衡量了模型预测值与真实值之间的平方差:
MSE ⁡ = 1 n ∑ i − 1 n ( y i − y ^ i ) 2 \operatorname{MSE}=\frac{1}{n} \sum_{i-1}^n\left(y_i-\hat{y}_i\right)^2 MSE=n1i1n(yiy^i)2

其中 n n n 是样本数量, y i y_i yi 是第 i i i 个样本的真实值, y ^ i \hat{y}_i y^i 是模型对第 i i i 个样本的预测值。

参数估计

线性回归模型的参数估计通常使用最小二乘法( O L S OLS OLS)来进行。最小二乘法的目标是最小化损失函数,找到能使损失函数达到最小的参数值

Python实现线性回归

接下来,我们将使用Python和Scikit-learn库实现一个简单的线性回归模型,并在一个示例数据集上进行训练和预测。

# 导入所需库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 创建示例数据集
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

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

# 创建线性回归模型并进行训练
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)

# 输出模型参数
print("Intercept:", lin_reg.intercept_)
print("Coefficient:", lin_reg.coef_)

# 在测试集上进行预测
y_pred = lin_reg.predict(X_test)

# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

# 可视化训练集和拟合直线
plt.scatter(X_train, y_train, color='blue')
plt.plot(X_train, lin_reg.predict(X_train), color='red')
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression')
plt.show()

在这里插入图片描述

以上是一个简单的线性回归模型的实现,可以根据你的实际需要去修改各个部分的代码达到要求。我们首先创建了一个示例数据集,然后将数据集分为训练集和测试集。接着,我们使用训练集训练了线性回归模型,并在测试集上进行了预测。最后,我们计算了模型的均方误差,并将训练集和拟合直线可视化。

总结

线性回归是机器学习中最简单但也是最常用的算法之一。它提供了一种直观的方法来建立和分析变量之间的线性关系。在本文中,我们详细介绍了线性回归的原理,并使用Python和Scikit-learn库实现了一个简单的线性回归模型。希望本文能帮助你更好地理解线性回归,并能够在实际项目中应用它。

  • 32
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值