【漫话机器学习系列】195.最小二乘法(Ordinary Least Squares, OLS)


最小二乘法(Ordinary Least Squares, OLS)------最经典的线性回归方法

原图来源:Chris Albon

场景:机器学习 / 统计学习 / 回归分析 / 数据建模入门


1. 什么是最小二乘法?

最小二乘法(Ordinary Least Squares, 简称 OLS)是统计学和机器学习中最常见的线性回归方法之一。

它的核心思想非常简单直白:

找一条最合适的直线,使得所有点到这条直线的"垂直距离"的平方和最小。

这条"最合适的直线"其实就是我们想要的模型。


2. 最小二乘法的数学表达式

图片中给出了最小二乘法的核心公式:

<math xmlns="http://www.w3.org/1998/Math/MathML"> y ^ = b + w 1 x 1 + w 2 x 2 + e \hat{y} = b + w_1x_1 + w_2x_2 + e </math>y^=b+w1x1+w2x2+e

每个符号的含义:

符号 含义
<math xmlns="http://www.w3.org/1998/Math/MathML"> y ^ \hat{y} </math>y^ 模型预测值(拟合的结果)
b 截距(bias,偏置项)
<math xmlns="http://www.w3.org/1998/Math/MathML"> w 1 , w 2 , ... w_1, w_2, \dots </math>w1,w2,... 回归系数(参数)
<math xmlns="http://www.w3.org/1998/Math/MathML"> x 1 , x 2 , ... x_1, x_2, \dots </math>x1,x2,... 自变量(特征、因子)
e 残差(误差,error)

3. 最小二乘法的核心目标

目标是什么?

最小化所有样本的误差平方和(Residual Sum of Squares, RSS)

<math xmlns="http://www.w3.org/1998/Math/MathML"> R S S = ∑ i = 1 n ( y i − y i ^ ) 2 RSS = \sum_{i=1}^{n}(y_i - \hat{y_i})^2 </math>RSS=∑i=1n(yi−yi^)2

其中:

  • <math xmlns="http://www.w3.org/1998/Math/MathML"> y i y_i </math>yi 是真实值
  • <math xmlns="http://www.w3.org/1998/Math/MathML"> y i ^ \hat{y_i} </math>yi^ 是预测值
  • n 是样本个数

这就是最小二乘(Least Squares)的名字来源: → 让残差平方和最小。


4. 最小二乘法的图示理解

图片中用非常直观的图展示了OLS的核心思想:

  • 红色线 → 拟合的直线(预测值)
  • 灰色点 → 真实的数据点
  • 每个点到红色线的距离 → 残差
  • 目标 → 让所有这些残差的平方和尽可能小

5. 最小二乘法为什么有效?

优点:

  • 简单直观
  • 数学基础扎实
  • 计算方便(可直接求解公式)
  • 适合作为建模的起点

适用场景:

  • 自变量和因变量近似线性关系
  • 数据噪声不大
  • 特征维度不高
  • 不存在严重多重共线性

6. 最小二乘法的局限性

局限 影响
对异常值敏感 离群点影响大
对线性假设依赖强 非线性关系拟合效果差
多重共线性问题 自变量之间强相关会影响结果

7. 最小二乘法的演变与扩展

最小二乘法是很多高级回归算法的基础,比如:

方法 思想
岭回归(Ridge Regression) OLS + L2正则
Lasso回归 OLS + L1正则
ElasticNet OLS + L1 + L2 正则
广义线性模型(GLM) OLS 的扩展
多项式回归 构造高阶特征进行拟合

8. 总结

最小二乘法是一种「简单但强大」的算法。

它是理解机器学习回归模型的基础,具有重要的理论与实战意义。

一句话总结:

通过最小化预测值和真实值之间误差的平方和,找到一条最适合数据的线。


9. 附:一句话记忆法

"最小二乘法 = 找到一条直线,让所有点到直线的距离平方和最小"


10. 推荐阅读与拓展

  • 《统计学习方法》 李航
  • 《机器学习实战》 Peter Harrington
  • 《ISLR》An Introduction to Statistical Learning
  • sklearn.linear_model.LinearRegression(Python 实现)
相关推荐
腾讯云开发者14 分钟前
“破解”GPT-4o生图技术:万物皆可吉卜力的技术路线推测
人工智能
KarudoLee39 分钟前
AIGC1——AIGC技术原理与模型演进:从GAN到多模态融合的突破
人工智能·生成对抗网络·aigc
才思喷涌的小书虫1 小时前
学术分享:基于 ARCADE 数据集评估 Grounding DINO、YOLO 和 DINO 在血管狭窄检测中的效果
人工智能·yolo·目标检测·计算机视觉·ai·语言模型·视觉检测
liruiqiang051 小时前
循环神经网络 - LSTM 网络的各种变体
人工智能·rnn·深度学习·神经网络·机器学习·lstm
XT46251 小时前
AI 之 LLM(大语言模型)是如何生成文本的!
人工智能·语言模型·自然语言处理
zslefour1 小时前
解决2080Ti使用节点ComfyUI-PuLID-Flux-Enhanced中遇到的问题
人工智能·comfyui
L_cl2 小时前
【NLP 58、利用trl框架训练LLM】
人工智能·深度学习·自然语言处理
uncle_ll2 小时前
李宏毅NLP-2-语音识别part1
人工智能·自然语言处理·nlp·语音识别·李宏毅
DWQY2 小时前
pytorch查询字典、列表维度
人工智能·pytorch·python