【漫话机器学习系列】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 实现)
相关推荐
千宇宙航2 小时前
闲庭信步使用SV搭建图像测试平台:第三十一课——基于神经网络的手写数字识别
图像处理·人工智能·深度学习·神经网络·计算机视觉·fpga开发
onceco2 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
jndingxin5 小时前
OpenCV CUDA模块设备层-----高效地计算两个 uint 类型值的带权重平均值
人工智能·opencv·计算机视觉
Sweet锦5 小时前
零基础保姆级本地化部署文心大模型4.5开源系列
人工智能·语言模型·文心一言
hie988946 小时前
MATLAB锂离子电池伪二维(P2D)模型实现
人工智能·算法·matlab
晨同学03276 小时前
opencv的颜色通道问题 & rgb & bgr
人工智能·opencv·计算机视觉
蓝婷儿6 小时前
Python 机器学习核心入门与实战进阶 Day 3 - 决策树 & 随机森林模型实战
人工智能·python·机器学习
大千AI助手6 小时前
PageRank:互联网的马尔可夫链平衡态
人工智能·机器学习·贝叶斯·mc·pagerank·条件概率·马尔科夫链
小和尚同志7 小时前
Cline | Cline + Grok3 免费 AI 编程新体验
人工智能·aigc
我就是全世界7 小时前
TensorRT-LLM:大模型推理加速的核心技术与实践优势
人工智能·机器学习·性能优化·大模型·tensorrt-llm