【漫话机器学习系列】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 实现)
相关推荐
开心的AI频道6 分钟前
GPT-4o 图像生成与八个示例指南
人工智能
%d%d229 分钟前
RuntimeError: CUDA error: __global__ function call is not configured
人工智能·深度学习·机器学习
阿维的博客日记38 分钟前
ϵ-prediction和z0-prediction是什么意思
人工智能·深度学习·机器学习
学术交流1 小时前
2025年软件工程与数据挖掘国际会议(SEDM 2025)
论文阅读·人工智能·数据挖掘·软件工程·论文笔记
生信漫谈1 小时前
Rice Science∣武汉大学水稻研究团队发现水稻壁相关激酶OsWAKg16和OsWAKg52同时调控水稻抗病性和产量
人工智能·学习方法
TO ENFJ2 小时前
day 10 机器学习建模与评估
人工智能·机器学习
高效匠人2 小时前
文章五《卷积神经网络(CNN)与图像处理》
图像处理·人工智能·python·cnn
卧式纯绿2 小时前
卷积神经网络基础(五)
人工智能·深度学习·神经网络·目标检测·机器学习·计算机视觉·cnn
乌恩大侠2 小时前
【东枫科技】代理销售 NVIDIA DGX Spark 您的桌上有一台 Grace Blackwell AI 超级计算机。
大数据·人工智能·科技·spark·nvidia
zhanzhan01092 小时前
ubantu安装CUDA
人工智能·python·深度学习