SVM 理论:间隔与支持向量
最大间隔分类器、硬间隔与软间隔(C 参数)、支持向量。
SVM 理论:间隔与支持向量 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。
什么是 SVM
支持向量机是一种分类器,用于寻找能够最好地分隔两个类别的边界。它不是任意寻找一条分隔线,而是寻找类别之间间隔最宽的那条线。
分隔超平面
在二维空间中,边界是一条线;在更高维空间中,边界是一个超平面。SVM 将其定义为w . x + b = 0,并根据点落在哪一侧进行分类。
间隔
间隔是超平面与每个类别最近点之间的距离。SVM 会最大化这个间隔,因为更宽的间隔通常能更好地泛化到新数据。
最大间隔超平面
在所有有效边界中,SVM 会选择最大间隔超平面:也就是距离两侧最近点都最远的超平面。这是使 SVM 具有稳健性的核心思想。
支持向量
支持向量是最接近边界的数据点,也就是接触间隔边缘的点。只有它们决定超平面;移除其他点不会改变超平面。
from sklearn.svm import SVC
model = SVC(kernel="linear")
model.fit(X, y)
print("Support vectors:\n", model.support_vectors_)
print("Indices:", model.support_)支持向量为何重要
由于只有支持向量定义模型,SVM 在预测时占用的内存较少,并且会关注边界附近最困难、信息量最大的样本,而不是远处容易分类的样本。
硬间隔
硬间隔 SVM 要求完美分离:任何点都不能越过间隔。这只有在数据完全线性可分时才有效,而且对异常值非常敏感。
硬间隔的问题
真实数据包含噪声,很少能做到完全可分。单个异常值就可能使硬间隔无法实现,或迫使间隔变得窄得不合理。因此,我们需要允许出现一些错误。
软间隔
软间隔允许部分点违反间隔约束或被错误分类,以少量错误换取更宽、更稳健的边界。这由参数 C 控制。
C 参数
C设置违反约束时的惩罚。较大的 C会严厉惩罚错误,得到能够紧密拟合训练数据的较小间隔(存在过拟合风险)。较小的 C允许更多松弛量和更宽的间隔(正则化更强)。
from sklearn.svm import SVC
strict = SVC(C=100, kernel="linear") # narrow margin, fits closely
relaxed = SVC(C=0.1, kernel="linear") # wide margin, more tolerant实际调整 C
请使用交叉验证选择 C。C 过大会导致过拟合,过小则会导致欠拟合。最佳取值需要根据您的数据,在间隔宽度与训练准确率之间取得平衡。
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
gs = GridSearchCV(SVC(kernel="linear"), {"C": [0.01, 0.1, 1, 10, 100]}, cv=5)
gs.fit(X, y)
print("Best C:", gs.best_params_)快速检查
请测试您对 SVM 理论的了解。
回顾
回顾:SVM 会寻找用于分隔类别的最大间隔超平面。支持向量是距离边界最近的点,并单独定义边界。硬间隔需要完美分离;软间隔允许由C控制的违反约束(C 越大 = 间隔越小,正则化越弱)。
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 53
- 课程
- 225
常见问题解答
「SVM 理论:间隔与支持向量」课时是免费的吗?
是的 — 「SVM 理论:间隔与支持向量」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。
「SVM 理论:间隔与支持向量」这节课中我会学到什么?
最大间隔分类器、硬间隔与软间隔(C 参数)、支持向量。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn AI with Python 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「SVM 理论:间隔与支持向量」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn AI with Python 课中编写并运行代码吗?
能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- SVM 理论:间隔与支持向量
- 核技巧:RBF、多项式与 Sigmoid
- 使用 sklearn 进行 SVM 分类
- 用于回归的 SVM(SVR)