Day 110 — SVM 与 KNN 图解
1. SVM 最大间隔原理
○ ○ ○ ← 类别 A(正类,y=+1)
○ ○
○ ══════════════ ← 最优超平面: w·x + b = 0
○ ↕ 间隔/2
↕ 间隔 (margin = 2/||w||)
↕ 间隔/2
● ● ← 类别 B(负类,y=-1)
● ● ●
支持向量(○ 和 ● 标记的)决定了超平面的位置
最大间隔 = 最好的泛化能力
2. 核技巧原理
┌─────────────────────────────────────────────────────┐
│ 原始空间(2D,线性不可分) │
│ │
│ ○ ● ○ ● ○ │
│ ● ○ ● ○ ● → 无法用一条直线分开 │
│ │
└──────────────────────┬──────────────────────────────┘
│ 映射 φ(x) 到高维空间
▼
┌─────────────────────────────────────────────────────┐
│ 高维空间(3D,线性可分) │
│ │
│ ○ ○ ○ │
│ ○ ○ ○ ────── 超平面可分开 │
│ ● ● ● │
│ │
│ 核技巧:不用真正计算 φ(x),直接算 K(x,y) = φ(x)·φ(y)│
└─────────────────────────────────────────────────────┘
3. KNN 分类流程
┌──────────────┐
│ 待预测样本 ? │
└──────┬───────┘
│
▼
┌──────────────┐
│ 计算与所有 │
│ 训练样本的距离│
└──────┬───────┘
│
▼
┌──────────────┐
│ 选择最近的 │
│ K 个邻居 │
└──────┬───────┘
│
▼
┌──────────────┐
│ 投票决定 │
│ 类别 │
└──────────────┘
示例 (K=3):
○ 距离=1.2 ● 距离=1.5 ○ 距离=1.8
→ 2个○, 1个● → 预测为 ○
4. K 值对决策边界的影响
K=1 (过拟合) K=5 (适中) K=20 (欠拟合)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ ○○○○ │ │ ○○○○○ │ │ ○○○○○○ │
│ ○○○○ │ │ ○○○○○ │ │ ○○○○○○ │
│ ○○○●● │ │ ○○○○●●● │ │ ○○○○○●●●● │
│ ○●●●● │ │ ○○○●●●● │ │ ○○○○●●●●● │
│ ●●●● │ │ ○○●●●● │ │ ○○●●●●●● │
│ ●●●● │ │ ●●●●● │ │ ●●●●●●● │
│ ●●●● │ │ ●●●● │ │ ●●●●●● │
└─────────────┘ └─────────────┘ └─────────────┘
决策边界复杂 决策边界合理 决策边界简单
对噪声敏感 泛化能力好 欠拟合
5. SVM 核函数效果对比
线性核 RBF 核 多项式核
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ ○ ○ │ │ ○ ○ ○ │ │ ○ ○ │
│ ○ ○ │ │ ○ ○ ○ ○ │ │ ○ ○ │
│ ─────── │ │ ○ ○ ○ ○ ○ │ │ ────── │
│ │ │ ● ● ● ● ● │ │ ───── │
│ ● ● │ │ ● ● ● ● │ │ ● ● │
│ ● ● │ │ ● ● ● │ │ ● ● │
└─────────────┘ └─────────────┘ └─────────────┘
适合线性可分数据 最通用,效果最好 适合有多项式特征的数据
6. 算法选择决策流程
┌──────────────┐
│ 有多少数据? │
└──────┬───────┘
│
┌─────┴─────┐
│ │
<1万 >1万
│ │
▼ ▼
┌──────┐ ┌──────────┐
│ KNN │ │ 特征维度?│
└──────┘ └────┬─────┘
│
┌─────┴─────┐
│ │
高维 低维
│ │
▼ ▼
┌──────┐ ┌──────┐
│ SVM │ │ SVM │
│(核) │ │(线性)│
└──────┘ └──────┘
7. 数据标准化效果对比
不做标准化 做标准化
┌─────────────┐ ┌─────────────┐
│ │ │ ○ ○ │
│ ○○○ │ │ ○ ○ ○ │
│ │ │ ───────── │
│ ●●●●●●●●●● │ │ ● ● ● │
│ │ │ ● ● │
└─────────────┘ └─────────────┘
特征1: 0.1-1.0 特征1: -2 到 +2
特征2: 100-10000 特征2: -2 到 +2
→ 特征2 主导距离计算 → 各特征均衡贡献
→ KNN 效果差 → KNN 效果好