文章目录
-
- 一、考试范围知识框架
- 二、正文内容
-
- [1. 线性回归模型](#1. 线性回归模型)
- [2. 最小二乘法](#2. 最小二乘法)
- [3. 正则化方法](#3. 正则化方法)
-
- 什么是过拟合?
- 正则化:防止过拟合
- L2正则化(Ridge回归)
- L1正则化(Lasso回归)
- [L1 vs L2 对比](#L1 vs L2 对比)
- 如何选择正则化系数λ?
一、考试范围知识框架
- 线性回归模型
- 最小二乘法
- 正则化方法(Lasso、Ridge)
二、正文内容
1. 线性回归模型
关键词:线性关系、回归系数、基函数、非线性变换
什么是线性回归?
线性回归是一种预测连续数值的方法。简单来说,就是找到一条直线(或超平面),使得这条直线能够最好地拟合数据点。
生活例子:根据房屋面积预测房价;根据学习时间预测考试成绩;根据广告投入预测销售额。
基本模型
给定有 N N N 个样本的数据集 D = { ( y i , x i 1 , . . . , x i D ) } D = \{(y_i, x_{i1}, ..., x_{iD})\} D={(yi,xi1,...,xiD)},其中: y i y_i yi 是因变量(我们要预测的值,如房价、成绩), x i 1 , . . . , x i D x_{i1}, ..., x_{iD} xi1,...,xiD 是自变量(特征,如房屋面积、学习时间)。
线性回归模型假设因变量 y i y_i yi 与自变量 x i x_i xi(由 { x i 1 , . . . , x i D } \{x_{i1}, ..., x_{iD}\} {xi1,...,xiD} 构成的 D D D 维向量)之间是线性关系:
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 \beta yi=β0+β1xi1+β2xi2+...+βDxiD=xiTβ
其中: β 0 \beta_0 β0 是截距(当所有特征为0时的 y y y 值), β 1 , . . . , β D \beta_1, ..., \beta_D β1,...,βD 是回归系数(每个特征对 y y y 的影响程度), β = [ β 0 , β 1 , . . . , β D ] T \beta = [\beta_0, \beta_1, ..., \beta_D]^T β=[β0,β1,...,βD]T 是参数向量。
例子:预测房价
假设我们想根据房屋面积 x 1 x_1 x1 和房间数 x 2 x_2 x2 预测房价 y y y:
y = β 0 + β 1 ⋅ x 1 + β 2 ⋅ x 2 y = \beta_0 + \beta_1 \cdot x_1 + \beta_2 \cdot x_2 y=β0+β1⋅x1+β2⋅x2
- β 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 \beta yi=ϕ(xi)Tβ
其中 ϕ ( x i ) \phi(x_i) ϕ(xi) 是对输入特征 x i x_i xi 的变换函数(基函数)。
常见基函数:
-
多项式基函数 : ϕ 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]T → y = β 0 + β 1 x + β 2 x 2 + β 3 x 3 y = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 y=β0+β1x+β2x2+β3x3
-
高斯基函数 : ϕ 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 附近有较大值
- 可以拟合局部特征
-
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+e−a1
- S形曲线,可以拟合平滑的过渡
例子:用多项式拟合非线性关系
假设房价和面积的关系是曲线的:
- 原始特征: x x x(面积)
- 基函数: ϕ ( 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^2 y=β0+β1x+β2x2
这样虽然对原始特征 x x x 是非线性的,但对变换后的特征 ϕ ( x ) \phi(x) ϕ(x) 仍然是线性的,所以仍然叫"线性回归"(对参数 β \beta β 是线性的)。
2. 最小二乘法
关键词:误差平方和、偏导数、参数估计、解析解
如何找到最好的参数?
线性回归的目标是找到参数 β \beta β,使得模型预测值 y ^ i \hat{y}_i y^i 和真实值 y i y_i yi 尽可能接近。
误差定义 :对于第 i i i 个样本,预测误差为:
e i = y i − f ( x i , β ) = y i − y ^ i e_i = y_i - f(x_i, \beta) = y_i - \hat{y}_i ei=yi−f(xi,β)=yi−y^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))^2 S=i=1∑Nei2=i=1∑N(yi−f(xi,β))2
**为什么用平方?**避免正负误差相互抵消;对大误差惩罚更重(平方放大);数学上便于求导(平方函数可导)。
求解方法:
通过求偏导数并令其等于0:
∂ S ∂ β d = 0 , d = 0 , 1 , ... , D \frac{\partial S}{\partial \beta_d} = 0, \quad d = 0, 1, \ldots, D ∂βd∂S=0,d=0,1,...,D
可以得到参数的解析解(闭式解,不需要迭代)。
线性回归的解析解:
对于线性回归模型 f ( x i , β ) = ϕ ( x i ) T β f(x_i, \beta) = \phi(x_i)^T \beta f(xi,β)=ϕ(xi)Tβ,参数估计为:
β ^ = ( Φ T Φ ) − 1 Φ T y \hat{\beta} = (\Phi^T \Phi)^{-1} \Phi^T y β^=(ΦTΦ)−1ΦTy
其中: Φ \Phi Φ 是基函数矩阵(每行是一个样本的基函数值), y y y 是目标值向量。
例子:简单线性回归
假设只有一个特征 x x x,模型为 y = β 0 + β 1 x y = \beta_0 + \beta_1 x y=β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.5x y=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=1∑N(yi−f(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^2 S′=i=1∑N(yi−f(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||_1 S′=i=1∑N(yi−f(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)