高级 #ml#svm#classification
支持向量机(SVM)
SVM 在特征空间中找最大间隔超平面——让两类数据离分界线越远越好。核技巧把低维不可分的数据映射到高维使其可分
📐 把苹果和橘子分开——哪条线最好?
一堆苹果(红点)和橘子(黄点)在桌面上。你要画一条线把它们分开——无数种划线方式,哪条最好?
SVM(Support Vector Machine)的答案:选那条离最近数据点最远的线。
苹果 苹果
\ |
橘子 \ 苹果| 苹果 ← "支持向量"(离分界线最近的点)
橘子 橘子\ | 苹果
橘子 橘子\ |
\ |
\| ← 最大间隔分界线
/|
/ |
橘子 橘子 / | ← "支持向量"
橘子/ 橘子|
核心思想:不是”把数据分开就行”,而是最大化分界线和最近数据点之间的间隔——间隔越大,对新数据的泛化能力越强。
🌀 核技巧——让线性不可分变成线性可分
现实数据往往不是一条直线能分清的——苹果和橘子可能混在一起。
核技巧(Kernel Trick) 把数据映射到更高维空间,让它们在高维中变得线性可分:
低维(无法线性分): 高维(可以线性分):
🍎 🍊 🍎 ↑ z (= x² + y²)
🍊 🍊 🍎 │ 🍎 🍎
🍎 🍊 🍊 │ 🍊 🍊 🍊
│ 🍎 🍎 🍎 🍎
└────────────→ x
看起来混在一起 在高维中"浮起来"了
# 常见核函数
# 线性核:K(x, y) = x·y — 本来就线性可分
# 多项式核:K(x, y) = (x·y + c)^d — 多项式决策边界
# RBF 核:K(x, y) = exp(-γ|x-y|²) — 最常用,适合大多数场景
核技巧的巧妙之处:不用真的把数据映射到高维空间(计算量太大)——只需要计算”高维空间中两个点的相似度”(核函数)。
📝 小结
| 概念 | 一句话 |
|---|---|
| SVM | 找最大间隔分界线——泛化能力最强 |
| 支持向量 | 离分界线最近的点——只有它们决定分界线位置 |
| 核技巧 | 映射到高维使数据线性可分——计算”相似度”而非”坐标” |
| RBF 核 | 最常用的核函数——适合大多数场景 |
为什么先学这个? SVM 是”参数化”模型的代表。另一种思路——k 近邻(KNN)不学参数,直接拿训练数据做判断。