当前位置:首页 > 学习资源 > 讲师博文 > 支持向量机(SVM)

支持向量机(SVM) 时间:2026-09-22      来源:华清远见

一、从一条分界线说起

想象教室里坐了两拨同学,左边是 Python 班,右边是 Java 班,现在要在地上画一条线把他们分开。画法有无数种:紧贴着左边画、紧贴着右边画、歪着画都可以。但有一条线最稳——它离两边的人都尽量远。将来来了个新同学站在线附近,我们也不容易分错。支持向量机(Support Vector Machine,SVM)找的就是这条“最稳的分界线”,学术一点说,叫最大间隔超平面。

二、支持向量:只有“边缘人”说了算

仔细看这条最优分界线会发现:它的位置其实只由两拨人里离对方最近的几个点决定,中间坐得远远的人挪一挪座位,线纹丝不动。这几个关键的“边缘点”就叫支持向量——这也是算法名字的由来。这是个很省事的性质:训练完成后,模型只记住这几个点就够了,预测时拿新点和它们比一比即可。

三、核技巧:把“分不开”变成“分得开”

如果两拨人混坐在一起,一条直线怎么都画不开怎么办?SVM 的答案是升维:把桌子上的点“抛”到更高的空间里去看,在低维纠缠的数据,到高维往往就能用一个平面切开。妙处在于,这个升维操作有捷径——核函数(kernel)。它让算法不必真的计算高维坐标,只通过一个函数就得到等价的结果,计算量几乎没涨。最常用的是高斯核(RBF),配合前面讲过的标准化预处理,能应付绝大多数非线性数据。

四、软间隔:容忍几个“刺头”

真实数据总有几个站错队的刺头。如果强行要求所有点都分对,边界可能被个别异常点带偏。软间隔的思路是:允许少数点越界,但要“罚款”。罚款力度由参数 C 控制:C 越大,越不容忍错误,边界容易被异常点扭曲;C 越小,边界越舒展,泛化通常更好。调 C 就是在“训练集全对”和“测试集更稳”之间找平衡。

五、上手代码(sklearn)

from sklearn.svm import SVC

from sklearn.preprocessing import StandardScaler

from sklearn.pipeline import make_pipeline

# SVM 对特征尺度敏感,必须先标准化

model = make_pipeline(StandardScaler(), SVC(kernel='rbf', C=1.0))

model.fit(X_train, y_train)

print(model.score(X_test, y_test))

六、小结与面试要点

SVM 的精髓可以浓缩成三句话:找最大间隔的边界;只由支持向量决定;分不开就升维(核技巧)。面试常被追问三点:一是 SVM 为什么必须做标准化——因为间隔和核函数都基于距离,量纲大的特征会独大;二是 C 和 gamma 的含义——C 管罚款力度、gamma 管核的弯曲程度,都过大易过拟合;三是小样本高维数据为什么首选 SVM——决策只依赖支持向量,样本少、维度高时依然稳。理解了“让边界离谁都远一点”这句话,SVM 就入门了。

上一篇:准确率、精确率和召回率怎么理解?

下一篇:没有了

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2026 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部