当前位置: 首页 > news >正文

最小二乘法(Least Squares Method):原理、应用与扩展

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

1 最小二乘法的基本概念

最小二乘法(Least Squares Method)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。这种方法的核心思想是找到一组参数估计值,使得预测值与实际观测值之间的差异(残差)的平方和最小。最小二乘法在统计学、机器学习和工程学等领域有着广泛的应用,特别是在回归分析曲线拟合问题中。

最小二乘法的基本数学表达式为:
S=∑i=1n[yi−f(xi,β)]2S = \sum_{i=1}^{n} [y_i - f(x_i, \beta)]^2 S=i=1n[yif(xi,β)]2
其中,yiy_iyi 是实际观测值,f(xi,β)f(x_i, \beta)f(xi,β) 是基于参数 β\betaβ 的预测值,SSS 是残差平方和(Sum of Squared Errors, SSE)。最小二乘法的目标是找到参数 β\betaβ 使得 SSS 最小化。

1.1 历史背景

最小二乘法的历史可以追溯到18世纪末和19世纪初。勒让德(Adrien-Marie Legendre)和高斯(Carl Friedrich Gauss)被独立认为是这一方法的发明者。

  • 勒让德在1805年首次发表了关于最小二乘法的论文,将其应用于天体轨道计算的问题。他主要从代数角度出发,将最小二乘法作为解线性方程组的一种方法。
  • 高斯在1809年声称自己在1795年就使用了最小二乘法,并从中概率论的角度阐述了这一方法的合理性。他通过假设误差服从正态分布,证明了最小二乘法得到的估计量具有优良的统计性质。

两位数学大师的工作相辅相成,勒让德提供了方法的形式,而高斯则奠定了其理论基础,共同推动了数理统计学的发展。

1.2 核心思想

最小二乘法的核心思想是最小化误差的平方和。这种方法的选择有以下几个原因:

  • 数学处理方便:平方操作使函数可微,便于使用求导方法找到最小值。
  • 统计性质优良:在高斯-马尔可夫定理条件下,最小二乘估计是最优线性无偏估计(BLUE)。
  • 对大误差的惩罚更强:相比绝对值误差,平方误差对异常值更敏感,这在一定情况下有助于减少大误差的影响。

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

往期文章推荐:

  • 20.方差齐性(Homoscedasticity):概念、检验方法与处理策略
  • 19.残差图(Residual Plot):模型诊断的关键工具
  • 18.模拟退火粒子群优化算法(SA-PSO):原理、应用与展望
  • 17.早熟收敛(Premature Convergence):遗传算法中的局部最优陷阱
  • 16.杂交粒子群优化算法(Hybrid PSO):原理、应用与展望
  • 15.模拟退火算法:从金属退火到全局优化
  • 14.蝴蝶优化算法:原理、改进与应用
  • 13.SPEA:强度帕累托进化算法
  • 12.d-分离:图模型中的条件独立性判定准则
  • 11.二元锦标赛:进化算法中的选择机制及其应用
  • 10.变分推断:从优化视角逼近复杂后验分布的强大工具
  • 9.Multi-Arith数据集:数学推理评估的关键基准与挑战
  • 8.Gibbs采样:全面解析马尔可夫链蒙特卡洛的核心算法
  • 7.BIG-Bench:大规模语言模型能力的全面评估与挑战
  • 6.MATH-500:大模型数学推理能力评估基准
  • 5.狄利克雷先验:贝叶斯分析中的多面手与它的学术传承
  • 4.GSM8K:评估大模型数学推理能力的关键数据集
  • 3.BIC评分:模型选择的贝叶斯利器与学术传承
  • 2.二型最大似然(Type II Maximum Likelihood):概述与核心概念
  • 1.半贝叶斯方法:理论基础、算法实现与应用全景

2 数学原理与算法形式

2.1 线性最小二乘法

对于线性模型,假设因变量 yyy 与自变量 xxx 之间存在线性关系:
y=β0+β1x+εy = \beta_0 + \beta_1 x + \varepsilon y=β0+β1x+ε
其中 β0\beta_0β0β1\beta_1β1 是待估参数,ε\varepsilonε 是随机误差项。

最小二乘法的目标是找到参数 β0\beta_0β0β1\beta_1β1,使得残差平方和最小:
S(β0,β1)=∑i=1n[yi−(β0+β1xi)]2S(\beta_0, \beta_1) = \sum_{i=1}^{n} [y_i - (\beta_0 + \beta_1 x_i)]^2 S(β0,β1)=i=1n[yi(β0+β1xi)]2

通过求解以下正规方程(Normal Equations)可以得到参数估计:
nβ0+β1∑xi=∑yiβ0∑xi+β1∑xi2=∑xiyi\begin{align*} n\beta_0 + \beta_1 \sum x_i &= \sum y_i \\ \beta_0 \sum x_i + \beta_1 \sum x_i^2 &= \sum x_i y_i \end{align*} nβ0+β1xiβ0xi+β1xi2=yi=xiyi

2.2 矩阵形式与代数解法

对于多元线性回归问题,使用矩阵表示更为方便。线性模型可以表示为:
y=Xβ+ε\mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon} y=Xβ+ε
其中 y\mathbf{y}yn×1n \times 1n×1 的观测值向量,X\mathbf{X}Xn×pn \times pn×p 的设计矩阵,β\boldsymbol{\beta}βp×1p \times 1p×1 的参数向量,ε\boldsymbol{\varepsilon}εn×1n \times 1n×1 的误差向量。

最小二乘法的目标函数为:
S(β)=(y−Xβ)T(y−Xβ)S(\boldsymbol{\beta}) = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^T (\mathbf{y} - \mathbf{X}\boldsymbol{\beta}) S(β)=(yXβ)T(yXβ)

通过求导并令导数为零,可以得到正规方程:
XTXβ=XTy\mathbf{X}^T\mathbf{X}\boldsymbol{\beta} = \mathbf{X}^T\mathbf{y} XTXβ=XTy

XTX\mathbf{X}^T\mathbf{X}XTX 可逆时,参数的最小二乘估计为:
β^=(XTX)−1XTy\hat{\boldsymbol{\beta}} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y} β^=(XTX)1XTy

2.3 数值计算方法

当设计矩阵 X\mathbf{X}X 的列之间存在多重共线性时,XTX\mathbf{X}^T\mathbf{X}XTX 可能接近奇异矩阵,导致求逆不稳定。这时可以使用以下数值计算方法:

  1. QR分解:将 X\mathbf{X}X 分解为正交矩阵 Q\mathbf{Q}Q 和上三角矩阵 R\mathbf{R}R,然后求解 Rβ=QTy\mathbf{R}\boldsymbol{\beta} = \mathbf{Q}^T\mathbf{y}Rβ=QTy

  2. 奇异值分解(SVD):对于病态问题,SVD提供了一种稳定的求解方法。将 X\mathbf{X}X 分解为 UΣVT\mathbf{U}\mathbf{\Sigma}\mathbf{V}^TVT,然后计算 β=VΣ−1UTy\boldsymbol{\beta} = \mathbf{V}\mathbf{\Sigma}^{-1}\mathbf{U}^T\mathbf{y}β=VΣ1UTy

以下是使用QR分解解决最小二乘问题的Python示例:

# 使用QR分解求解最小二乘问题
Q, R = np.linalg.qr(X)
beta_qr = np.linalg.solve(R, Q.T @ y)print(f"使用QR分解估计的参数: {beta_qr}")

3 最小二乘法的变体与扩展

传统的最小二乘法在某些情况下可能不够理想,例如当数据存在异常值、多重共线性或稀疏性时。以下是一些常见的变体:

3.1 加权最小二乘法(Weighted Least Squares, WLS)

当误差项存在异方差性(方差不全相等)时,可以使用加权最小二乘法。WLS通过给每个观测值赋予不同的权重来解决异方差性问题。目标函数为:
S(β)=(y−Xβ)TW(y−Xβ)S(\boldsymbol{\beta}) = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^T \mathbf{W} (\mathbf{y} - \mathbf{X}\boldsymbol{\beta}) S(β)=(yXβ)TW(yXβ)
其中 W\mathbf{W}W 是对角权重矩阵。

3.2 广义最小二乘法(Generalized Least Squares, GLS)

当误差项存在自相关异方差时,GLS是一种更一般的方法。目标函数为:
S(β)=(y−Xβ)TΩ−1(y−Xβ)S(\boldsymbol{\beta}) = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^T \mathbf{\Omega}^{-1} (\mathbf{y} - \mathbf{X}\boldsymbol{\beta}) S(β)=(yXβ)TΩ1(yXβ)
其中 Ω\mathbf{\Omega}Ω 是误差协方差矩阵。

3.3 正则化最小二乘法

当自变量之间存在多重共线性或模型过拟合时,可以引入正则化项:

  • 岭回归(Ridge Regression):添加L2正则化项,目标函数为 $ | \mathbf{y} - \mathbf{X}\boldsymbol{\beta} | ^2 + \lambda | \boldsymbol{\beta} | ^2$。
  • Lasso回归:添加L1正则化项,目标函数为 $ | \mathbf{y} - \mathbf{X}\boldsymbol{\beta} | ^2 + \lambda | \boldsymbol{\beta} | _1$,可以产生稀疏解。
  • 弹性网络(Elastic Net):结合L1和L2正则化项。

以下是使用岭回归的Python示例:

from sklearn.linear_model import Ridge# 创建存在多重共线性的数据
np.random.seed(42)
x1 = np.random.normal(0, 1, 100)
x2 = 0.9 * x1 + np.random.normal(0, 0.1, 100) # x2与x1高度相关
y = 2 + 1.5 * x1 + 0.5 * x2 + np.random.normal(0, 1, 100)# 准备设计矩阵
X = np.column_stack((np.ones(100), x1, x2))# 普通最小二乘法
beta_ols = np.linalg.inv(X.T @ X) @ X.T @ y# 岭回归
ridge = Ridge(alpha=1.0)
ridge.fit(X[:, 1:], y) # 不包含截距项
beta_ridge = np.concatenate(([ridge.intercept_], ridge.coef_))print("OLS估计:", beta_ols)
print("岭回归估计:", beta_ridge)

3.4 总体最小二乘法(Total Least Squares, TLS)

自变量和因变量都存在误差时,传统最小二乘法可能不适用。总体最小二乘法考虑了自变量和因变量的误差,通过最小化点到直线(或超平面)的垂直距离来实现。

3.5 正交最小二乘法(Orthogonal Least Squares, OLS)

正交最小二乘法是总体最小二乘法的一种特殊形式,它最小化点到直线的垂直距离,而不是垂直方向的误差。这种方法在误差存在于两个变量时特别有用。

from scipy.odr import ODR, Model, Data, RealData# 生成带有误差的数据
np.random.seed(42)
x = np.linspace(0, 10, 50)
x_err = np.random.normal(0, 0.5, 50)
y_err = np.random.normal(0, 0.5, 50)
y = 2 + 1.5 * (x + x_err) + y_err# 定义线性函数
def linear_func(b, x):return b[0] * x + b[1]# 使用正交距离回归(ODR)
data = RealData(x, y, sx=0.5, sy=0.5)
model = Model(linear_func)
odr = ODR(data, model, beta0=[1., 1.])
output = odr.run()print(f"正交最小二乘法估计: 斜率 = {output.beta[0]:.4f}, 截距 = {output.beta[1]:.4f}")

4 最小二乘法的应用案例

最小二乘法在机器学习和数据科学中有着广泛的应用。以下是几个常见应用场景:

4.1 线性回归

最小二乘法最直接的应用是线性回归,用于建立自变量和因变量之间的线性关系模型。

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score# 准备数据
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3], [3, 3], [3, 4], [4, 4], [4, 5]])
y = np.dot(X, np.array([1, 2])) + 3# 创建线性回归模型
model = LinearRegression()# 拟合模型
model.fit(X, y)# 预测
y_pred = model.predict(X)# 评估模型
print(f"系数: {model.coef_}")
print(f"截距: {model.intercept_}")
print(f"均方误差: {mean_squared_error(y, y_pred):.4f}")
print(f"决定系数 (R²): {r2_score(y, y_pred):.4f}")

5 学术引用与原始论文信息

最小二乘法的原始论文由两位数学大师独立提出:

勒让德(Adrien-Marie Legendre)的论文

  • 标题:Nouvelles méthodes pour la détermination des orbites des comètes
  • 作者:Legendre, A.-M.
  • 出版年份:1805

高斯(Carl Friedrich Gauss)的论文

  • 标题:Theoria Motus Corporum Coelestium in Sectionibus Conicis Solem Ambientium
  • 作者:Gauss, C. F.
  • 出版年份:1809

结论

最小二乘法是统计学和机器学习中最基础、最重要的方法之一。从勒让德和高斯的最初工作开始,经过两个多世纪的发展,最小二乘法已经从简单的线性回归扩展到包括加权最小二乘法、正则化方法、总体最小二乘法等多种变体。

最小二乘法的核心思想——最小化误差平方和——简单而强大,使得它成为数据建模和预测的有力工具。无论是简单的线性关系还是复杂的非线性模式,最小二乘法都提供了有效的解决方案。

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

http://www.dtcms.com/a/452960.html

相关文章:

  • 13. Pandas 透视表与交叉表分析
  • Edu161 D、E 模拟+位运算构造
  • 临床研究三千问——如何选择合适的研究类型(12)
  • 电销做网站的话术响应式网站是
  • Channel 的核心特点 (Channel vs SharedFlow 选择对比)
  • 什么网站权重高wordpress置顶代码
  • 厦门app网站设计青岛队建网站
  • 【Linux】Linux进程信号(下)
  • C++基础:(九)string类的使用与模拟实现
  • C++网络编程(二)字节序与IP地址转换
  • 从零开始XR开发:Three.js实现交互式3D积木搭建器
  • 如何解决网站只收录首页的一些办法wordpress多站点内容聚合
  • 个人备忘录的设计与实现
  • 删除cad无关线条 的ppo 随手记
  • Python AI编程在微创手术通过数据分析改善恢复的路径分析(下)
  • 深度学习之神经网络1(Neural Network)
  • pycharm下创建flask项目,配置端口问题
  • 计算机科学中的核心思想与理论
  • SpringCloud,vue3应用使用AlibabaCloudToolkit自动化部署到远程服务器上的docker
  • 如何从RSSI和SNR 判断现场的LoRaWAN的信号质量?
  • 【万字解读】品牌SEO实战指南:7步打造AI时代的搜索权威
  • 网站短期就业培训班开发公司总经理管理方案
  • GitHub 热榜项目 - 日榜(2025-10-07)
  • TDengine 比较函数 NULLIF 用户手册
  • SSM面试题学习
  • 网站建设练手项目我是做装修什么网站可以
  • Effective Python 第41条:考虑用mix-in类来表示可组合的功能
  • STM32独立看门狗IWDG与窗口看门狗WWDG知识梳理笔记
  • HTML-CSS-JS-入门学习笔记
  • 基于 MacOS 的Rokid 开发本地环境搭建指南