1 线性回归基本概念

线性回归是一种用于预测连续数值的监督学习算法,它通过找到特征与目标值之间的线性关系来进行预测。

简单来说,就是用一条直线(或平面/超平面)来拟合数据点,使得预测值与实际值之间的差距最小。

现实中的例子:

  • 房地产:根据房屋面积、房间数量、地理位置预测房价
  • 金融:根据工资、年龄、信用记录预测贷款额度
  • 商业:根据广告投入、季节因素预测产品销量
  • 医疗:根据年龄、体重、生活习惯预测血压值

1.1 银行信贷例子

# 示例数据:客户信息与贷款额度
import pandas as pd

data = {
    '客户ID': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    '月薪(元)': [4000, 8000, 5000, 12000, 6000, 9000, 7000, 3000, 10000, 5500],
    '年龄': [25, 30, 28, 35, 32, 40, 29, 26, 38, 31],
    '工作年限': [2, 8, 5, 12, 6, 15, 7, 1, 10, 4],
    '实际贷款额度(元)': [20000, 70000, 35000, 150000, 50000, 180000, 60000, 15000, 130000, 40000]
}

df = pd.DataFrame(data)
print(df)

在这个例子中:

  • 特征(输入变量):月薪、年龄、工作年限
  • 标签(输出变量):贷款额度
  • 目标:建立一个数学模型,能够根据客户的月薪、年龄和工作年限,准确预测银行应批准的贷款额度

2 数学模型

2.1 基本公式

对于有2个特征的情况:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 hθ(x)=θ0+θ1x1+θ2x2

其中:

  • h θ ( x ) h_{\theta}(x) hθ(x):预测值(银行贷款额度)

  • θ 0 \theta_0 θ0:偏置项(截距)

  • θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2:特征权重参数

  • x 1 , x 2 x_1, x_2 x1,x2:特征值(工资、年龄)

对于有n个特征的一般情况:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n hθ(x)=θ0+θ1x1+θ2x2++θnxn

向量化表示:

  • 添加 x 0 = 1 x_0 = 1 x0=1(偏置项对应项)
  • 定义参数向量: θ = [ θ 0 , θ 1 , θ 2 , ⋯   , θ n ] T \theta = [\theta_0, \theta_1, \theta_2, \cdots, \theta_n]^T θ=[θ0,θ1,θ2,,θn]T
  • 定义特征向量: x = [ 1 , x 1 , x 2 , ⋯   , x n ] T x = [1, x_1, x_2, \cdots, x_n]^T x=[1,x1,x2,,xn]T
  • 预测公式简化为: h θ ( x ) = θ T x h_\theta(x) = \theta^T x hθ(x)=θTx

2.2 矩阵形式(多个样本)

当有m个训练样本时:

X = [ 1 x 1 ( 1 ) x 2 ( 1 ) ⋯ x n ( 1 ) 1 x 1 ( 2 ) x 2 ( 2 ) ⋯ x n ( 2 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 x 1 ( m ) x 2 ( m ) ⋯ x n ( m ) ] , y = [ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] , θ = [ θ 0 θ 1 ⋮ θ n ] X = \begin{bmatrix} 1 & x_1^{(1)} & x_2^{(1)} & \cdots & x_n^{(1)} \\ 1 & x_1^{(2)} & x_2^{(2)} & \cdots & x_n^{(2)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_1^{(m)} & x_2^{(m)} & \cdots & x_n^{(m)} \end{bmatrix}, \quad y = \begin{bmatrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)} \end{bmatrix}, \quad \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix} X= 111x1(1)x1(2)x1(m)x2(1)x2(2)x2(m)xn(1)xn(2)xn(m) ,y= y(1)y(2)y(m) ,θ= θ0θ1θn

预测值向量: h θ ( X ) = X θ h_\theta(X) = X\theta hθ(X)=

3 误差分析与目标函数

3.1 误差的统计假设

在现实中,我们的预测很难完全准确,总会存在误差:

y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)} = \theta^{T} x^{(i)} + \varepsilon^{(i)} y(i)=θTx(i)+ε(i)

其中 ε ( i ) \varepsilon^{(i)} ε(i)是第i个样本的误差项。

为什么假设误差服从高斯分布?

  • 中心极限定理:许多微小随机因素的综合影响
  • 数学处理的便利性
  • 实际数据中常见

误差的高斯分布假设: ε ( i ) ∼ N ( 0 , σ 2 ) \varepsilon^{(i)} \sim N(0, \sigma^2) ε(i)N(0,σ2)

这意味着误差以0为中心,呈钟形分布。

3.2 从最大似然到最小二乘

最大似然估计思想:找到最有可能产生观测数据的参数值。

推导过程:

  • 由误差假设: y ( i ) ∣ x ( i ) ; θ ∼ N ( θ T x ( i ) , σ 2 ) y^{(i)}|x^{(i)};\theta \sim N(\theta^T x^{(i)}, \sigma^2) y(i)x(i);θN(θTx(i),σ2)
  • 似然函数: L ( θ ) = ∏ i = 1 m 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) L(\theta) = \prod_{i=1}^m \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(y^{(i)} - \theta^T x^{(i)})^2}{2\sigma^2}\right) L(θ)=i=1m2π σ1exp(2σ2(y(i)θTx(i))2)
  • 对数似然: ℓ ( θ ) = m log ⁡ 1 2 π σ − 1 2 σ 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \ell(\theta) = m\log\frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{2\sigma^2}\sum_{i=1}^m (y^{(i)} - \theta^T x^{(i)})^2 (θ)=mlog2π σ12σ21i=1m(y(i)θTx(i))2
  • 最大化 ℓ ( θ ) \ell(\theta) (θ)等价于最小化 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \sum_{i=1}^m (y^{(i)} - \theta^T x^{(i)})^2 i=1m(y(i)θTx(i))2

最小二乘目标函数:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m}\sum_{i=1}^m\left(h_\theta\left(x^{(i)}\right)-y^{(i)}\right)^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2

注意:

  • 除以 m m m是为了得到平均误差
  • 乘以 1 / 2 1/2 1/2是为了后续求导时消去系数2
  • 目标:找到使 J ( θ ) J(\theta) J(θ)最小的参数 θ \theta θ

4 参数求解方法

4.1 正规方程法(解析解)

推导过程:

  • 目标函数: J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2}(X\theta - y)^T(X\theta - y) J(θ)=21(y)T(y)
  • θ \theta θ求导: ∂ J ( θ ) ∂ θ = X T ( X θ − y ) \frac{\partial J(\theta)}{\partial\theta} = X^T(X\theta - y) θJ(θ)=XT(y)
  • 令导数为0: X T ( X θ − y ) = 0 X^T(X\theta - y) = 0 XT(y)=0
  • 解得: θ = ( X T X ) − 1 X T y \theta = (X^T X)^{-1} X^T y θ=(XTX)1XTy

4.2 梯度下降法(迭代求解)

三种梯度下降方法对比:

方法更新公式优点缺点
批量梯度下降 θ j ′ = θ j + 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i \theta_j' = \theta_j + \frac{1}{m}\sum_{i=1}^{m}(y^{i}-h_{\theta}(x^{i})) x_j^{i} θj=θj+m1i=1m(yihθ(xi))xji收敛稳定速度慢
随机梯度下降 θ j ′ = θ j + ( y i − h θ ( x i ) ) x j i \theta_j' = \theta_j + (y^{i}-h_{\theta}(x^{i})) x_j^{i} θj=θj+(yihθ(xi))xji速度快震荡大
小批量梯度下降 θ j = θ j − α 1 b ∑ k = i i + b − 1 ( h θ ( x ( k ) ) − y ( k ) ) x j ( k ) \theta_j = \theta_j - \alpha\frac{1}{b}\sum_{k=i}^{i+b-1}(h_\theta(x^{(k)})-y^{(k)})x_j^{(k)} θj=θjαb1k=ii+b1(hθ(x(k))y(k))xj(k)平衡效率与稳定性需要调参

4.3 梯度下降关键参数

  • 学习率( α \alpha α):步长大小,影响收敛速度

  • 批处理大小:通常取32、64、128等

  • 迭代次数:收敛条件

5 模型评估

5.1 决定系数R^2

决定系数(Coefficient of Determination),记作R²,是用于评估回归模型拟合优度的重要指标。它表示模型能够解释的目标变量变异性的比例

R 2 = 1 − ∑ i = 1 m ( y ^ i − y i ) 2 ∑ i = 1 m ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^m\left(\hat{y}_i-y_i\right)^2}{\sum_{i=1}^m\left(y_i-\bar{y}\right)^2} R2=1i=1m(yiyˉ)2i=1m(y^iyi)2

解释:

  • R^2越接近1,模型拟合越好
  • 表示模型解释的目标变量变异性的比例

5.2 核心公式

R 2 = 1 − ∑ i = 1 m ( y ^ i − y i ) 2 ∑ i = 1 m ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^m(\hat{y}_i - y_i)^2}{\sum_{i=1}^m(y_i - \bar{y})^2} R2=1i=1m(yiyˉ)2i=1m(y^iyi)2

其中:

  • y ^ i \hat{y}_i y^i:第i个样本的预测值
  • y i y_i yi:第i个样本的实际值
  • y ˉ \bar{y} yˉ:所有实际值的平均值
  • m m m:样本数量

5.3 R²的组成部分详解

5.3.1 分子:残差平方和(SSres)

SS r e s = ∑ i = 1 m ( y ^ i − y i ) 2 \text{SS}_{res} = \sum_{i=1}^m(\hat{y}_i - y_i)^2 SSres=i=1m(y^iyi)2

含义:模型预测值与真实值之间的差异平方和

  • 值越小,说明预测越准确
  • 反映了模型未能解释的变异部分

5.3.2 分母:总平方和(SStot)

SS t o t = ∑ i = 1 m ( y i − y ˉ ) 2 \text{SS}_{tot} = \sum_{i=1}^m(y_i - \bar{y})^2 SStot=i=1m(yiyˉ)2

含义:真实值与其平均值之间的差异平方和

  • 反映了目标变量的总变异性
  • 相当于"最朴素模型"(总是预测平均值)的误差

5.4 R²的直观理解

5.4.1 几何解释

把R²想象成:

  • 总变异性 = 目标变量自身的波动程度
  • 解释的变异性 = 模型能够说明的那部分波动
  • 未解释的变异性 = 模型无法说明的剩余波动

R 2 = 解释的变异性 总变异性 = 1 − 未解释的变异性 总变异性 R^2 = \frac{\text{解释的变异性}}{\text{总变异性}} = 1 - \frac{\text{未解释的变异性}}{\text{总变异性}} R2=总变异性解释的变异性=1总变异性未解释的变异性

5.4.2 类比理解

考试成绩的比喻

  • 总变异性:全班同学成绩的差异程度
  • 解释变异性:通过学习时间、智商等因素能够解释的成绩差异
  • R²:这些因素能够解释的成绩差异占总差异的比例

5.5 R²的取值范围和解释

5.5.1 取值范围

  • 最佳情况:R² = 1
    • 所有预测点都落在回归线上
    • 模型完美拟合数据
  • 最差情况:R² ≤ 0
    • 模型预测效果不如直接使用平均值
    • 在实际应用中很少出现负值

5.5.2 经验解释

R²值范围拟合效果评价说明
0.9-1.0极好模型解释绝大部分变异
0.7-0.9很好模型解释大部分变异
0.5-0.7一般模型解释约一半变异
0.3-0.5较差模型解释能力有限
0.0-0.3很差模型几乎无解释能力

更多推荐