支持向量机 SVM 入门
支持向量机(SVM)追求一条离两类都最远的「最大间隔」分界线。它在小样本、高维数据上表现稳健,配合核函数还能把非线性问题映射到高维空间求解,是经典 ML 的基石之一。
最大间隔在算什么
对线性可分数据,SVM 找使两类边界间隔最大的超平面。真正决定这条线的只有少量落在边界上的样本,即「支持向量」。其余样本不影响最终解,这让模型对远离边界的点不敏感。
from sklearn.svm import SVC
clf = SVC(kernel="rbf", C=1.0, gamma="scale")
clf.fit(X_train, y_train)
核技巧与软间隔
现实数据常不可线性分割。核函数(如 RBF、多项式)在隐式高维空间中计算内积,免去了显式映射的昂贵开销。C 参数控制软间隔:C 越小越容忍误分类、间隔更宽更平滑;C 越大越严格。
注意点
SVM 对特征尺度敏感,训练前务必做标准化。RBF 的 gamma 越大模型越复杂、易过拟合。数据量很大时训练偏慢,此时可优先尝试线性核或线性模型。
小结
SVM 用最大间隔超平面与少量支持向量做稳健分类,核技巧处理非线性,C 与 gamma 调节复杂度。记得先标准化特征,并在线性核与 RBF 之间按规模取舍。
参考与延伸阅读
- scikit-learn SVM 文档。已核验。https://scikit-learn.org/stable/modules/svm.html
- Cortes 与 Vapnik 1995 支持向量网络原始论文。已核验。https://dl.acm.org/doi/10.1145/130385.130401
本文累计阅读 — 次