【模式识别与机器学习(4)】主要算法与技术(中篇:概率统计与回归方法)之线性回归模型 - 实践

一、考试范围知识框架

  • 线性回归模型
  • 最小二乘法
  • 正则化方法(Lasso、Ridge)

二、正文内容

1. 线性回归模型

关键词:线性关系、回归系数、基函数、非线性变换

线性回归?就是什么

线性回归是一种预测连续数值的手段。轻松来说,就是找到一条直线(或超平面),使得这条直线能够最好地拟合数据点。

生活例子:根据房屋面积预测房价;根据学习时间预测考试成绩;根据广告投入预测销售额。

基本模型

给定有 N NN个样本的数据集D = { ( y i , x i 1 , . . . , x i D ) } D = \{(y_i, x_{i1}, ..., x_{iD})\}D={(yi,xi1,...,xiD)},其中:y i y_iyi是因变量(我们要预测的值,如房价、成绩),x i 1 , . . . , x i D x_{i1}, ..., x_{iD}xi1,...,xiD是自变量(特征,如房屋面积、学习时间)。

线性回归模型假设因变量y i y_iyi 与自变量 x i x_ixi(由 { x i 1 , . . . , x i D } \{x_{i1}, ..., x_{iD}\}{xi1,...,xiD} 构成的 D DD维向量)之间是线性关系

y i = β 0 + β 1 x i 1 + β 2 x i 2 + . . . + β D x i D = x i T β y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + ... + \beta_D x_{iD} = x_i^T \betayi=β0+β1xi1+β2xi2+...+βDxiD=xiTβ

其中:β 0 \beta_0β0是截距(当所有特征为0时的y yy 值),β 1 , . . . , β D \beta_1, ..., \beta_Dβ1,...,βD是回归系数(每个特征对y yy的影响程度),β = [ β 0 , β 1 , . . . , β D ] T \beta = [\beta_0, \beta_1, ..., \beta_D]^Tβ=[β0,β1,...,βD]T是参数向量。

例子:预测房价

假设我们想根据房屋面积x 1 x_1x1 和房间数 x 2 x_2x2 预测房价 y yy

y = β 0 + β 1 ⋅ x 1 + β 2 ⋅ x 2 y = \beta_0 + \beta_1 \cdot x_1 + \beta_2 \cdot x_2y=β0+β1x1+β2x2

  • β 0 = 50 \beta_0 = 50β0=50:基础房价(即使面积为0,也有基础成本)
  • β 1 = 0.5 \beta_1 = 0.5β1=0.5:每增加1平方米,房价增加0.5万元
  • β 2 = 10 \beta_2 = 10β2=10:每增加1个房间,房价增加10万元

若是一套房子面积100平方米,3个房间:
y = 50 + 0.5 × 100 + 10 × 3 = 50 + 50 + 30 = 130 万元 y = 50 + 0.5 \times 100 + 10 \times 3 = 50 + 50 + 30 = 130 \text{万元}y=50+0.5×100+10×3=50+50+30=130万元

基函数:让线性回归处理非线性关系

问题线性的呢?比如面积越大,每平方米的单价可能下降(非线性关系)。就是:如果房价和面积的关系不

解决方案:使用基函数(basis function)对输入特征进行非线性变换,然后在这些变换后的特征上做线性回归。

一般化模型

y i = ϕ ( x i ) T β y_i = \phi(x_i)^T \betayi=ϕ(xi)Tβ

其中 ϕ ( x i ) \phi(x_i)ϕ(xi)是对输入特征x i x_ixi的变换函数(基函数)。

常见基函数

  1. 多项式基函数ϕ j ( x ) = x j \phi_j(x) = x^jϕj(x)=xj

    • 许可拟合曲线关系
    • 例子:ϕ ( x ) = [ 1 , x , x 2 , x 3 ] T \phi(x) = [1, x, x^2, x^3]^Tϕ(x)=[1,x,x2,x3]Ty = β 0 + β 1 x + β 2 x 2 + β 3 x 3 y = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3y=β0+β1x+β2x2+β3x3
  2. 高斯基函数ϕ j ( x ) = exp ⁡ { − ( x − μ j ) 2 2 s 2 } \phi_j(x) = \exp\left\{-\frac{(x-\mu_j)^2}{2s^2}\right\}ϕj(x)=exp{2s2(xμj)2}

    • 在特定位置 μ j \mu_jμj附近有较大值
    • 能够拟合局部特征
  3. S形(sigmoid)基函数ϕ j ( x ) = σ ( x − μ j s ) \phi_j(x) = \sigma\left(\frac{x-\mu_j}{s}\right)ϕj(x)=σ(sxμj),其中 σ ( a ) = 1 1 + e − a \sigma(a) = \frac{1}{1+e^{-a}}σ(a)=1+ea1

    • S形曲线,可以拟合平滑的过渡

例子:用多项式拟合非线性关系

曲线的:就是假设房价和面积的关系

  • 原始特征:x xx(面积)
  • 基函数:ϕ ( x ) = [ 1 , x , x 2 ] T \phi(x) = [1, x, x^2]^Tϕ(x)=[1,x,x2]T
  • 模型:y = β 0 + β 1 x + β 2 x 2 y = \beta_0 + \beta_1 x + \beta_2 x^2y=β0+β1x+β2x2

这样虽然对原始特征x xx是非线性的,但对变换后的特征ϕ ( x ) \phi(x)ϕ(x)仍然是线性的,所以仍然叫"线性回归"(对参数β \betaβ是线性的)。

2. 最小二乘法

关键词:误差平方和、偏导数、参数估计、解析解

如何找到最好的参数?

找到参数就是线性回归的目标β \betaβ,使得模型预测值y ^ i \hat{y}_iy^i 和真实值 y i y_iyi尽可能接近。

误差定义:对于第 i ii个样本,预测误差为:

e i = y i − f ( x i , β ) = y i − y ^ i e_i = y_i - f(x_i, \beta) = y_i - \hat{y}_iei=yif(xi,β)=yiy^i

最小二乘法

最小二乘法(Least Square Method)的核心思想:使得所有样本的误差平方和最小

目标函数

S = ∑ i = 1 N e i 2 = ∑ i = 1 N ( y i − f ( x i , β ) ) 2 S = \sum_{i=1}^{N} e_i^2 = \sum_{i=1}^{N} (y_i - f(x_i, \beta))^2S=i=1Nei2=i=1N(yif(xi,β))2

**为什么用平方?**避免正负误差相互抵消;对大误差惩罚更重(平方放大);数学上便于求导(平方函数可导)。

求解方法

通过求偏导数并令其等于0:

∂ S ∂ β d = 0 , d = 0 , 1 , … , D \frac{\partial S}{\partial \beta_d} = 0, \quad d = 0, 1, \ldots, DβdS=0,d=0,1,,D

能够得到参数的解析解(闭式解,不需要迭代)。

线性回归的解析解

对于线性回归模型f ( x i , β ) = ϕ ( x i ) T β f(x_i, \beta) = \phi(x_i)^T \betaf(xi,β)=ϕ(xi)Tβ,参数估计为:

β ^ = ( Φ T Φ ) − 1 Φ T y \hat{\beta} = (\Phi^T \Phi)^{-1} \Phi^T yβ^=(ΦTΦ)1ΦTy

其中:Φ \PhiΦ是基函数矩阵(每行是一个样本的基函数值),y yy是目标值向量。

例子:便捷线性回归

假设只有一个特征x xx,模型为 y = β 0 + β 1 x y = \beta_0 + \beta_1 xy=β0+β1x

给定数据点:( 1 , 2 ) , ( 2 , 3 ) , ( 3 , 5 ) (1, 2), (2, 3), (3, 5)(1,2),(2,3),(3,5)

通过通过最小二乘法能够计算出:β 0 = 0.5 \beta_0 = 0.5β0=0.5β 1 = 1.5 \beta_1 = 1.5β1=1.5。所以拟合的直线是:y = 0.5 + 1.5 x y = 0.5 + 1.5xy=0.5+1.5x

优点:有解析解,计算快速;不需要迭代,一步到位;理论保证全局最优。

缺点:需要计算矩阵的逆,当特征很多时计算量大;对异常值敏感(因为用平方误差)。

3. 正则化方式

关键词:过拟合、L1正则化、L2正则化、Lasso、Ridge

什么是过拟合?

**过拟合(Overfitting)**是指模型在训练数据上表现很好,但在新数据上表现很差的现象。

形象比喻:就像学生死记硬背了所有练习题,但遇到新题目就不会做了。

过拟合的原因:数据量太少;模型太复杂(参数太多);回归系数过大,导致曲线波动剧烈。

例子

假设我们用多项式拟合房价数据:

  • 欠拟合:用一次函数(直线)→ 太简单,拟合不好
  • 合适拟合:用二次函数(抛物线)→ 刚好
  • 过拟合:用10次多项式 → 曲线剧烈波动,完美拟合训练资料,但预测新数据很差
正则化:防止过拟合

正则化(Regularization)通过在目标函数中加入惩罚项,限制参数的大小,从而防止过拟合。

核心思想:不仅要让预测误差小,还要让参数不要太大。

正则化的目标函数

S ′ = ∑ i = 1 N ( y i − f ( x i , β ) ) 2 + λ ⋅ 惩罚项 S' = \sum_{i=1}^{N} (y_i - f(x_i, \beta))^2 + \lambda \cdot \text{惩罚项}S=i=1N(yif(xi,β))2+λ惩罚项

其中:第一项是误差平方和(拟合数据),第二项是惩罚项(限制参数),λ \lambdaλ是正则化系数(控制惩罚的强度)。

L2正则化(Ridge回归)

惩罚项:参数的平方和(L2范数的平方)

S ′ = ∑ i = 1 N ( y i − f ( x i , β ) ) 2 + λ ∣ ∣ β ∣ ∣ 2 2 S' = \sum_{i=1}^{N} (y_i - f(x_i, \beta))^2 + \lambda ||\beta||_2^2S=i=1N(yif(xi,β))2+λ∣∣β22

其中 ∣ ∣ β ∣ ∣ 2 2 = β 0 2 + β 1 2 + . . . + β D 2 = β T β ||\beta||_2^2 = \beta_0^2 + \beta_1^2 + ... + \beta_D^2 = \beta^T \beta∣∣β22=β02+β12+...+βD2=βTβ

特点:让所有参数都变小,但不会变成0;对异常值敏感(因为用平方);解稳定且唯一;适用于特征很多但都重要的情况。

例子

假设 λ = 0.1 \lambda = 0.1λ=0.1,模型有两个参数β 1 \beta_1β1β 2 \beta_2β2

  • 没有正则化:β 1 = 100 , β 2 = 50 \beta_1 = 100, \beta_2 = 50β1=100,β2=50
  • L2正则化:β 1 = 10 , β 2 = 5 \beta_1 = 10, \beta_2 = 5β1=10,β2=5(都变小了,但都不为0)
L1正则化(Lasso回归)

惩罚项:参数的绝对值之和(L1范数)

S ′ = ∑ i = 1 N ( y i − f ( x i , β ) ) 2 + λ ∣ ∣ β ∣ ∣ 1 S' = \sum_{i=1}^{N} (y_i - f(x_i, \beta))^2 + \lambda ||\beta||_1S=i=1N(yif(xi,β))2+λ∣∣β1

其中 ∣ ∣ β ∣ ∣ 1 = ∣ β 0 ∣ + ∣ β 1 ∣ + . . . + ∣ β D ∣ = ∑ j ∣ β j ∣ ||\beta||_1 = |\beta_0| + |\beta_1| + ... + |\beta_D| = \sum_{j} |\beta_j|∣∣β1=β0+β1+...+βD=jβj

特点:能够让某些参数变成0(稀疏解);有助于特征选择(自动去除不关键的特征);对异常值更鲁棒(因为用绝对值);适用于特征很多但只有部分重要的情况。

例子

通过假设有100个特征,但只有10个真正重要:L1正则化能够自动将90个不重要特征的系数变成0,相当于自动做了特征选择。

L1 vs L2 对比
特性L2正则化(Ridge)L1正则化(Lasso)
参数是否可以为0否(接近0但不为0)是(能够精确为0)
特征选择是(自动选择)
对异常值敏感鲁棒
适用场景所有特征都重要只有部分特征要紧
如何选择正则化系数λ?

λ \lambdaλ控制正则化的强度:

  • λ = 0 \lambda = 0λ=0:没有正则化,可能过拟合
  • λ \lambdaλ 很小:轻微正则化,参数稍微变小
  • λ \lambdaλ 适中:平衡拟合和泛化
  • λ \lambdaλ 很大:过度正则化,参数都接近0,可能欠拟合

选择方法:通常使用交叉验证(Cross-Validation)来选择最优的λ \lambdaλ 值。

实际应用建议

  • 如果特征很多,想自动选择重要特征 → 使用L1正则化(Lasso)
  • 如果所有特征都重要,只想防止过拟合 → 使用L2正则化(Ridge)
  • 也可以同时使用L1和L2(Elastic Net)
posted @ 2026-01-10 12:41  clnchanpin  阅读(3)  评论(0)    收藏  举报