支持向量机 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 之间按规模取舍。

参考与延伸阅读

本文累计阅读