支持向量机(Support Vector Machine, SVM)是一种监督学习分类器:它要找一条分界线,不仅把两类点分开,还要让离分界线最近的点尽量远。
打个比方:桌上红豆绿豆混在一起,要用直尺画线分开。能分开的线很多,SVM 不随便选,它选那条离最近豆子最远的线。那些离分界线最近的豆子叫支持向量(support vector),线的位置只由它们决定;两侧到分界线的总距离叫间隔(margin),SVM 就是要最大化间隔。间隔越大,模型对新样本越不敏感,泛化往往更稳。
现实数据常线性不可分。SVM 的办法是核技巧(kernel trick):把数据映射到更高维空间,在那里找超平面(hyperplane)。好比桌面上分不开,把豆子弹到空中,用一个平面去切。核函数(kernel function)让这件事不用真的算出高维坐标,只需计算样本间的相似度。常见核有线性核、多项式核和径向基函数(Radial Basis Function, RBF)核。若允许少数点越界,就是软间隔(soft margin),用参数 C 控制容忍度。
和相邻概念的区别:
| 维度 | SVM | 逻辑回归(logistic regression) | 感知机(perceptron) |
|---|---|---|---|
| 目标 | 最大化间隔 | 最大化似然,输出概率 | 找到任意一个分界 |
| 输出 | 类别与到边界距离 | 概率 | 类别 |
| 边界 | 最大间隔,由支持向量决定 | 概率 0.5 处 | 不唯一 |
| 异常值 | 软间隔可缓解 | 相对平滑 | 较敏感 |
实际意义:在样本少、特征维度高的场景,比如文本分类、基因数据,SVM 常能用简单核函数取得不错效果;它也是核方法思想的代表。对从业者,若数据量不大且维度高,值得作为基线试一次,记得先做特征标准化,核函数与参数用验证集选,具体实现和参数以所用工具官方文档为准。对普通人,它讲了一个朴素道理:分界线不只要分对,还要留有余地。
