← 返回 Day 107 正文

Day 107 · 图解

Day 107 — 线性回归 · 图解

1. 线性回归核心流程

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   原始数据    │────▶│  特征工程     │────▶│  模型训练     │
│  (X, y)      │     │  标准化/缩放  │     │  最小化损失   │
└──────────────┘     └──────────────┘     └──────┬───────┘
                                                  │
                                                  ▼
┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  部署/应用    │◀────│  模型评估     │◀────│  得到参数     │
│  新数据预测   │     │  MSE/R²      │     │  w₀, w₁...   │
└──────────────┘     └──────────────┘     └──────────────┘

2. 正规方程 vs 梯度下降

正规方程(封闭解)                梯度下降(迭代优化)
─────────────────                ────────────────────
w = (XᵀX)⁻¹Xᵀy                  w := w - α·∇J(w)

优点:                             优点:
• 一步到位,不需要调参              • 适合大数据集
• 不需要学习率 α                   • 特征数很多时更快
• 精确解                           • 内存占用小

缺点:                             缺点:
• O(n³) 计算复杂度                 • 需要调学习率 α
• 特征 > 10000 时很慢              • 可能收敛到局部最优
• XᵀX 可能不可逆                   • 需要多次迭代

适用:特征数 < 10,000               适用:特征数 > 10,000

3. 损失函数可视化(MSE)

  J(w)
   │
 50├─                              ·
   │                             ·   ·
 40├─                           ·       ·
   │                          ·           ·
 30├─                        ·               ·
   │                       ·                   ·
 20├─                     ·                       ·
   │                    ·                           ·
 10├─                  ·                               ·
   │               · · · · · · · · · · · · · ·           ·
  0├──────────────────────────●───────────────────────────────
   │                        最优 w                          w
   │
   └─────────────────────────────────────────────────────────

  MSE 是一个凸函数(碗形),只有一个最小值
  梯度下降就是沿着碗壁往下走,直到到达底部

4. 四大评估指标对比

            对异常值敏感度        可解释性        数学性质
            ─────────────        ──────────      ──────────
  MSE       ★★★★★(很高)        ★★(差)        可导,有闭式解
  RMSE      ★★★★★(很高)        ★★★★(好)      同 MSE
  MAE       ★★(低)             ★★★★(好)      零点不可导
  R²        ★★★(中等)          ★★★★★(很好)   无量纲

  ┌──────────────────────────────────────────────┐
  │              预测误差 y_pred - y_true          │
  │                                              │
  │  小误差    中误差    大误差                     │
  │   │         │         │                      │
  │   ▼         ▼         ▼                      │
  │  MAE:  |1| |2|  |10|  线性增长               │
  │  MSE:  1   4     100  平方增长(大误差惩罚重)  │
  │                                              │
  │  → MSE 重视大误差 → MAE 更均衡                │
  └──────────────────────────────────────────────┘

5. 多重共线性示意

  正常情况                    多重共线性
  ────────                    ──────────
  
  x1 ──────┐                 x1 ──────┐
            ├─▶ y                       ├─▶ y
  x2 ──────┘                 x2 ≈ x1 ──┘
  
  系数: w1=2.0, w2=3.0        系数: w1=1.2, w2=3.8
  含义清晰                     系数被「分摊」,含义模糊
                               但预测能力不受影响!

6. 欠拟合 vs 过拟合

  欠拟合(阶数=1)              合适(阶数=3)              过拟合(阶数=10)
  ─────────────               ──────────────              ────────────────
  
       ·  ·                       ·  ·                        ·  ·
     ·  ·  ·                    · ·  · ·                     · ··· ·
   ·   ·  ·   ·               ·· · ··· ··                  ···········
  · · ·  · · · ·            ·· ·· · ··· ··               ··············
  
  一条直线                     平滑曲线                     锯齿状曲线
  忽略数据模式                 捕捉主要趋势                  拟合了噪声
  
  训练 R²: 0.6                训练 R²: 0.95                训练 R²: 0.99
  测试 R²: 0.55               测试 R²: 0.93                测试 R²: 0.70
  → 欠拟合 ✗                  → 好模型 ✓                   → 过拟合 ✗

Mermaid 图解

graph TD A[原始数据] --> B{特征数量?} B -->|< 10000| C[正规方程<br/>w = XTX⁻¹XTy] B -->|≥ 10000| D[梯度下降<br/>w := w - α∇J] C --> E[得到模型参数] D --> E E --> F{评估模型} F -->|R² 好, 残差正态| G[✅ 模型可用] F -->|R² 差| H{诊断问题} H -->|欠拟合| I[增加特征/多项式] H -->|过拟合| J[正则化/减少特征] H -->|数据问题| K[清洗/变换数据] I --> E J --> E K --> E
graph TD
    A[原始数据] --> B{特征数量?}
    B -->|< 10000| C[正规方程<br/>w = XTX⁻¹XTy]
    B -->|≥ 10000| D[梯度下降<br/>w := w - α∇J]
    C --> E[得到模型参数]
    D --> E
    E --> F{评估模型}
    F -->|R² 好, 残差正态| G[✅ 模型可用]
    F -->|R² 差| H{诊断问题}
    H -->|欠拟合| I[增加特征/多项式]
    H -->|过拟合| J[正则化/减少特征]
    H -->|数据问题| K[清洗/变换数据]
    I --> E
    J --> E
    K --> E
graph LR subgraph 损失函数 L[MSE = 1/m Σ(y-ŷ)²] end subgraph 求解方法 NE[正规方程<br/>闭式解] GD[梯度下降<br/>迭代优化] end subgraph 评估指标 MSE2[MSE/RMSE<br/>误差大小] MAE2[MAE<br/>鲁棒误差] R2[R²<br/>拟合优度] end L --> NE L --> GD L --> MSE2 L --> MAE2 L --> R2
graph LR
    subgraph 损失函数
        L[MSE = 1/m Σ(y-ŷ)²]
    end
    subgraph 求解方法
        NE[正规方程<br/>闭式解]
        GD[梯度下降<br/>迭代优化]
    end
    subgraph 评估指标
        MSE2[MSE/RMSE<br/>误差大小]
        MAE2[MAE<br/>鲁棒误差]
        R2[R²<br/>拟合优度]
    end
    L --> NE
    L --> GD
    L --> MSE2
    L --> MAE2
    L --> R2