为什么不要小瞧「线性回归」?

227 阅读6分钟

原文链接:medium.com/data-and-be…

原文作者:Ben Fairbairn

译者:菜小鸟魔王

在初涉数据科学领域时,我最常听见的一个建议是不要试图掌握整个机器学习体系(这个领域范围太广且日新月异,根本不可能全面掌握),而应专注于少数几个与数据从业者日常工作密切相关的模型 —— 例如决策树、支持向量机,以及至关重要的线性回归。

线性回归本身就是一个极具实用价值的模型,但除此之外,很多其他的机器学习模型本质上都只是它的微调版本。在本文,首先我们将快速回顾线性回归的基本原理及其运作机制,接着讨论它的一些变体。

01 重温线性回归

线性回归属于监督式学习范畴,存在一个明确的目标变量(即待预测的输出值),且该变量与输入特征变量呈线性关系。这一关系可通过以下公式表达:

image.png

其中 y 代表目标变量,x 是输入模型的特征向量,ε 表示"噪声" —— 即导致数据点偏离一条完美直线的误差项。我们进一步假设该噪声服从均值为 0 的正态分布,且方差保持恒定。这意味着无论特征值大小如何,数据点都紧密围绕在直线周围,形成如下理想的分布形态:

image.png

而不是下图这种:

image.png

02 多项式回归

在传统线性回归模型中,目标变量被假定为输入特征的线性组合。然而现实场景中,目标变量与输入特征之间往往存在更为复杂的非线性关系。当意识到这一事实时,我们难免会困惑:如何寻找一个恰当的函数f,使得 y=f(x)+noise(噪声项)能够准确描述这种关系?

此时,我们可以借助数学分析领域的经典理论(感兴趣的读者可查阅魏尔斯特拉斯逼近定理(Weierstrass Approximation Theorem)及斯通-魏尔斯特拉斯定理(Stone-Weierstrass Theorem)相关证明) —— 任何连续函数都能通过多项式实现高精度逼近。考虑到线性函数本质上只是一阶多项式的特例,多项式回归自然成为其高阶形式的扩展延伸。由此我们很自然就会想到类似下面的模型:

image.png

在对数据进行初步探索性分析时,若发现目标变量与输入特征的散点图呈现一些明显的曲线趋势(尤其是非线性特征),则值得尝试多项式回归建模。典型示例如下图所示:

image.png

03 广义的线性回归

在多项式回归中,我们调整了等式右侧的函数形式,但左侧呢?如果目标变量并非输入变量的线性变换,而是其某种函数映射呢?换言之,若模型形式变为下列形式会怎样?

image.png

这种模型被称为广义的线性回归 —— 当函数 f(y)=y 时,即为前文讨论的基础线性回归的特例,故得此名。那么函数 f 可能是什么形式?显然这取决于具体建模场景,但还有几种特殊情况得关注。

若推测目标变量服从泊松分布,则采用 f(y)=ln(y) 的形式是合理选择,此即泊松回归。

比这更常见的是分类问题。虽然线性回归及其变体主要解决回归问题(该名称已揭示其本质),但当数据科学初学者第一次接触分类问题时,首先接触的基础模型便是逻辑回归(logistic regression)。但这实质上是广义线性回归在 logit 函数(即 f(y)=ln(y/(1-y )))下的特例应用。

04 贝叶斯线性回归

本文并非系统讲解贝叶斯统计的场合 —— 网络上已经有很多相关多入门资料。

简而言之,其核心思想是:当数据稀疏(即信息严重不足)时,我们可以借助专家经验补充数据,从而更全面地刻画问题。就线性回归而言,若样本点极少,传统方法根本无法可靠估算回归参数 —— 因为我们缺乏足够的信息。

但如果我们退而求其次,不追求唯一的最优拟合直线,而是确定这条直线必然存在的合理范围,贝叶斯线性回归便能大显身手。

虽然数学推导会迅速变得复杂,但我们输出的不再是一条确定的直线,而是直线可能存在的概率分布区域。随着数据点增多,这个区域会逐渐收窄(因为我们对直线位置的置信度提高),其效果如下图所示:

image.png

05 神经网络:线性回归的终极进化形态

回顾文首给数据科学新手的建议时,我们会发现:尽管深度学习和神经网络充满魅力,而且该领域的许多前沿研究都集中在这些方面,但我们必须清醒认识到 —— 它们本质上只是大量经过"激活函数"调校的、高度并行化的重型线性回归组合

用最简化的视角来看:神经网络由若干"神经元"(或称"感知机")构成。每一层神经元要么处理原始输入(如第一层),要么处理前一层的输出。每个神经元的核心不过是一个线性回归方程,并外加一个激活函数 —— 像开关般决定神经元是否对输入信号产生响应(即是否被"激活")。所谓神经网络训练,本质上就是在确定这些线性回归方程的最佳系数。

没错,神经网络就是大量线性回归的堆砌!

不同网络的复杂度差异仅体现在:

  • 使用的线性回归数量(即神经元数量),最复杂的网络包含数百万个
  • 网络层数深浅(深度学习中的"深度"正源于此)
  • 激活函数的选择(如阶跃函数、ReLU、Sigmoid等),有些网络甚至分层采用不同函数

但万变不离其宗——无论是CNN、自编码器还是 Transformer,所有神经网络都遵循这个基本原理,它们本质上都是微线性回归的精密组合。

线性回归看似平淡无奇,却是众多机器学习模型的基石。本文所述仅是冰山一角 —— 永远不要小看线性回归!