【最小二乘法:线性回归应用】

本文介绍了最小二乘法的基本概念,包括其目标(最小化误差平方和)、原理(通过求偏导数优化参数),以及如何在Python中使用Scipy库进行线性回归的实例。
摘要由CSDN通过智能技术生成

一、什么是最小二乘法?

最小二乘法的目标是找到一组参数,使得线性模型的预测值与观测数据点之间的误差平方和最小化。对于简单的线性回归模型,可以表示为:

Y = β 0 + β 1 X + ϵ Y = \beta_0 + \beta_1X + \epsilon Y=β0+β1X+ϵ

其中, Y Y Y 是因变量(目标变量), X X X 是自变量(特征), β 0 \beta_0 β0 是截距, β 1 \beta_1 β1 是斜率, ϵ \epsilon ϵ 是误差项。

二、最小二乘法的原理

最小二乘法的核心思想是最小化损失函数,损失函数通常定义为残差的平方和:

L ( β 0 , β 1 ) = ∑ i = 1 n ( Y i − ( β 0 + β 1 X i ) ) 2 L(\beta_0, \beta_1) = \sum_{i=1}^{n} (Y_i - (\beta_0 + \beta_1X_i))^2 L(β0,β1)=i=1n(Yi(β0+β1Xi))2

最小二乘法的关键是找到使损失函数最小化的 β 0 \beta_0 β0 β 1 \beta_1 β1。这可以通过求偏导数并令其等于零来实现。最终,我们得到了最佳拟合直线的公式:

Y ^ = β 0 ^ + β 1 ^ X \hat{Y} = \hat{\beta_0} + \hat{\beta_1}X Y^=β0^+β1^X

三、使用Scipy进行最小二乘法

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 生成随机数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
Y = 4 + 3 * X + np.random.randn(100, 1)

# 定义线性模型
def linear_model(X, beta_0, beta_1):
    return beta_0 + beta_1 * X

# 利用Scipy的curve_fit函数拟合数据
params, covariance = curve_fit(linear_model, X.ravel(), Y.ravel())
beta_0, beta_1 = params
# 绘制数据点
plt.scatter(X, Y, label='Data')

# 绘制拟合线
plt.plot(X, linear_model(X, beta_0, beta_1), color='red', linewidth=2, label='Linear Fit')

plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.show()

# 输出拟合参数
print("截距:", beta_0)
print("斜率:", beta_1)

通过Scipy的curve_fit函数拟合数据并绘制拟合结果。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

武帝为此

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

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

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

打赏作者

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

抵扣说明:

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

余额充值