最小二乘法算法(个人总结版)

最小二乘法(Least Squares Method)是一种通过最小化误差平方和来拟合数据的回归分析方法。它被广泛应用于线性回归、多元回归以及其他数据拟合问题中。以下是详细的教程,涵盖基本概念、数学推导、具体步骤和实现代码。

1. 最小二乘法基本概念

最小二乘法是一种用于数据拟合的统计方法,通过最小化观测数据与模型预测值之间的误差平方和,求解模型参数。

2. 线性回归的最小二乘法

线性回归是最简单的最小二乘法应用,假设模型为线性关系: y=β0​+β1​x 其中,y 是响应变量,x 是自变量,β0​ 是截距,β1​ 是斜率。

3. 最小二乘法的数学推导

假设有 n 个观测数据点(xi​,yi​),最小二乘法通过最小化以下误差平方和S 来求解模型参数:

为了找到最优参数 β0​ 和 β1​,对 S 求偏导数并令其为零:

解这两个方程,得到:

4. 多元线性回归的最小二乘法

对于多元线性回归模型:

可以使用矩阵形式来表示和求解。设: y=Xβ+e 其中,y 是响应变量向量,X 是设计矩阵,β 是参数向量,e 是误差向量。

通过最小化误差平方和可以得到参数估计:

5. 非线性最小二乘法

非线性最小二乘法用于拟合非线性模型。这种情况下,通常需要使用迭代优化算法如梯度下降法、牛顿法等进行参数估计。

6. 最小二乘法的应用实例

例1:简单线性回归

假设有以下数据点:

复制代码
(1,2),(2,2.8),(3,3.6),(4,4.5),(5,5.1)(1,2),(2,2.8),(3,3.6),(4,4.5),(5,5.1)

可以用最小二乘法拟合直线:

计算得到的最优参数为β0​和β1​。

例2:多元线性回归

假设有以下数据点和两个自变量:

复制代码
(1,2,2),(2,2.8,3),(3,3.6,4),(4,4.5,5),(5,5.1,6)(1,2,2),(2,2.8,3),(3,3.6,4),(4,4.5,5),(5,5.1,6)

可以用最小二乘法拟合多元回归模型:

7. 最小二乘法的实现

Python实现示例

复制代码
import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 2.8, 3.6, 4.5, 5.1])

# 计算最小二乘法系数
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]

# 绘图
plt.plot(x, y, 'o', label='Original data', markersize=10)
plt.plot(x, m*x + c, 'r', label='Fitted line')
plt.legend()
plt.show()

步骤解析

  1. 生成数据:创建自变量 x 和因变量 y 的数据点。
  2. 构建设计矩阵:将 x 和常数项 1 叠加构成设计矩阵 A。
  3. 求解最优参数 :使用 numpy 的 lstsq 函数求解线性方程 Aβ=y 的最优参数 m 和 c。
  4. 绘制图表:绘制原始数据点和拟合直线。

最小二乘法图解

这是一个简单的最小二乘法线性回归的图表,用于演示如何通过最小二乘法拟合数据点。以下是图表的详细说明:

图表说明
  • X轴:自变量 x
  • Y轴:因变量 y
  • 黄色圆点:原始数据点
  • 红色直线:拟合直线,通过最小二乘法计算得到

图表生成代码

如果你想在自己的环境中生成类似的图表,可以使用以下Python代码:

复制代码
import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 2.8, 3.6, 4.5, 5.1])

# 计算最小二乘法系数
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]

# 绘制图表
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'o', label='Original data', markersize=10, color='orange')
plt.plot(x, m*x + c, 'r', label='Fitted line')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Least Squares Fit')
plt.legend()
plt.grid(True)
plt.show()

图表解读

  • 这段代码首先生成了一组 x 和 y 的数据点。
  • 使用最小二乘法计算拟合直线的斜率 m 和截距 c。
  • 最后,绘制原始数据点和拟合直线,并添加了标签、标题和网格,以便更好地理解图表。

结论

最小二乘法是数据拟合和回归分析中非常重要的工具。它可以通过最小化误差平方和来估计模型参数,从而找到最佳拟合曲线。本文详细介绍了最小二乘法的基本概念、数学推导、应用实例以及Python实现方法,希望能帮助你更好地理解和应用这一方法。

相关推荐
DO_Community4 分钟前
DigitalOcean vs OpenRouter:2026 年 AI 模型路由对比
人工智能·agent·ai编程·agi
JJJennie77710 分钟前
大模型网关能做智能路由吗?MAI Gateway实战能力深度解读
人工智能·ai网关·企业ai治理·mai gateway
Raas10011 分钟前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持DeepSeek吗?从原理到落地
大数据·人工智能·gateway·ai网关·mai gateway·魔芋·企业级产品
合米AI SOP系统12 分钟前
新能源零部件|密封锁付装配工位,合米科技AI SOP视觉防错规避工艺遗漏带来的售后故障
大数据·人工智能·科技
probex_12 分钟前
AI 能力的边界:不是“它聪不聪明”,而是“它能不能稳定、安全、可验证地把事做完”
人工智能
网易云信29 分钟前
AI 用了两年,我们却成了它的"传话筒"?
人工智能
番茄巴士30 分钟前
手写一个 mini HashMap,彻底搞懂哈希表原理
算法
得物技术33 分钟前
指标平台:从语义底座到智能消费的实践路径|得物技术
数据库·人工智能·ai编程
jsl_jsl_jsl35 分钟前
《桌面端的读写通道:Admin 接口层的设计与安全防线》
人工智能
#卢松松#40 分钟前
用AI做网站,已经到了找BUG阶段了
人工智能·创业创新