← 返回 Day 108 正文

Day 108 · 图解

Day 108 — 逻辑回归与分类 · 图解

1. Sigmoid 函数与决策过程

  Sigmoid 函数 σ(z) = 1 / (1 + e^(-z))
  
  p
  1.0 ┤                    ●●●●●●●●●●●
      │                ●●●●
      │             ●●●
  0.8 ┤           ●●
      │          ●
      │         ●
  0.6 ┤        ●
      │       ●
  0.5 ┤·······●···········  ← 决策边界 (p=0.5, z=0)
      │      ●
  0.4 ┤     ●
      │    ●
      │   ●
  0.2 ┤  ●●
      │ ●●●
      │●●●●
  0.0 ┤●●●●●●●●●●●●●●●●●●
      └───┬───┬───┬───┬───┬───→ z
         -5  -3  -1   0   1   3   5
         
      z < 0 → p < 0.5 → 负类 (Class 0)
      z > 0 → p > 0.5 → 正类 (Class 1)
      z = 0 → p = 0.5 → 决策边界

2. 逻辑回归 vs 线性回归

  ┌─────────────────────────────────────────────────────────┐
  │                    线性回归                              │
  │  输入 → [w·x + b] → 输出: 连续值 (-∞, +∞)              │
  │                  ↓                                      │
  │  用于: 房价预测、温度预测等回归任务                       │
  ├─────────────────────────────────────────────────────────┤
  │                    逻辑回归                              │
  │  输入 → [w·x + b] → [Sigmoid] → 输出: 概率 (0, 1)      │
  │                              ↓                          │
  │                         阈值判断                         │
  │                    ↓           ↓                         │
  │              p ≥ 0.5      p < 0.5                       │
  │              正类          负类                           │
  │                                                         │
  │  用于: 垃圾邮件、疾病诊断等分类任务                      │
  └─────────────────────────────────────────────────────────┘

3. 交叉熵损失函数

  损失 L = -[y·log(p) + (1-y)·log(1-p)]
  
  情况 1: y = 1 (实际为正类)
  ────────────────────────────
  L = -log(p)
  
  p → 1 (预测正确)  → L → 0   ✅ 损失小
  p → 0 (预测错误)  → L → ∞   ❌ 损失大
  
      L
      ↑
   ∞  │╲
      │ ╲
      │  ╲
      │   ╲
      │    ╲
   0  │─────╲────────────→ p
      0      0.5         1
      
  情况 2: y = 0 (实际为负类)
  ────────────────────────────
  L = -log(1-p)
  
  p → 0 (预测正确)  → L → 0   ✅ 损失小
  p → 1 (预测错误)  → L → ∞   ❌ 损失大

4. 混淆矩阵详解

                    ┌──────────────────┬──────────────────┐
                    │                  │                  │
                    │   预测: 正类      │   预测: 负类      │
                    │                  │                  │
  ┌─────────────────┼──────────────────┼──────────────────┤
  │                 │                  │                  │
  │  实际: 正类      │   TP (真正例)     │   FN (假反例)     │
  │                 │   "抓对了"       │   "漏掉了"        │
  │                 │                  │                  │
  ├─────────────────┼──────────────────┼──────────────────┤
  │                 │                  │                  │
  │  实际: 负类      │   FP (假正例)     │   TN (真反例)     │
  │                 │   "误报了"       │   "排除了"        │
  │                 │                  │                  │
  └─────────────────┴──────────────────┴──────────────────┘
  
  关键指标:
  ┌─────────────────────────────────────────────────────┐
  │ Accuracy  = (TP + TN) / 总数        整体对不对       │
  │ Precision = TP / (TP + FP)          预测正的准不准    │
  │ Recall    = TP / (TP + FN)          实际正的找全没    │
  │ F1        = 2 × P × R / (P + R)    P 和 R 的平衡    │
  └─────────────────────────────────────────────────────┘

5. ROC 曲线

    TPR (真正例率 = 召回率)
    1.0 ┤                    ●●●●●●●● 完美模型
        │                ●●●●
        │             ●●●
    0.8 ┤           ●●
        │          ●         ← 好模型
        │         ●             AUC ≈ 0.9
    0.6 ┤        ●
        │       ●
        │      ●
    0.4 ┤     ●
        │    ●
        │   ●    ← 随机模型
    0.2 ┤  ●       AUC = 0.5
        │ ●
        │●
    0.0 ┤●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
        └──┬────┬────┬────┬────┬────┬──→ FPR
          0.0  0.2  0.4  0.6  0.8  1.0
          
    AUC = 曲线下面积
    AUC = 1.0 → 完美模型
    AUC = 0.5 → 随机猜测(无价值)
    AUC < 0.5 → 比随机还差(可能标签反了)

6. 多分类策略

  ┌─────────────────────────────────────────────────────┐
  │              One-vs-Rest (OvR)                      │
  │                                                     │
  │  3 个类别 → 训练 3 个二分类器:                       │
  │                                                     │
  │  分类器 1: 类别A vs (类别B + 类别C)                  │
  │  分类器 2: 类别B vs (类别A + 类别C)                  │
  │  分类器 3: 类别C vs (类别A + 类别B)                  │
  │                                                     │
  │  最终预测: 取概率最高的类别                           │
  ├─────────────────────────────────────────────────────┤
  │              Softmax (Multinomial)                   │
  │                                                     │
  │  直接输出 K 个概率,概率和为 1:                       │
  │                                                     │
  │  P(y=A) = e^(zₐ) / (e^(zₐ) + e^(z_b) + e^(z_c))  │
  │  P(y=B) = e^(z_b) / (...)                          │
  │  P(y=C) = e^(z_c) / (...)                          │
  │                                                     │
  │  最终预测: 取最大概率的类别                           │
  │                                                     │
  │  优点: 考虑了类别间的相互关系                         │
  └─────────────────────────────────────────────────────┘

7. 正则化效果

  权重大小
     ↑
     │ ●
     │  ●
     │   ●●
     │     ●●
     │       ●●●
     │          ●●●●
     │              ●●●●●●●●
     │                       ●●●●●●●●●●●
     └───────────────────────────────────→ C (正则化强度倒数)
     0.001                              100
     
     C 小 → 正则化强 → 权重小 → 模型简单 → 可能欠拟合
     C 大 → 正则化弱 → 权重大 → 模型复杂 → 可能过拟合
     
     最优 C 在中间某个位置(通过交叉验证确定)