Learn AI with Python · 课时

SVM 理论:间隔与支持向量

最大间隔分类器、硬间隔与软间隔(C 参数)、支持向量。

第 1 / 4 课13 个步骤

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. SVM 理论:间隔与支持向量
  2. 核技巧:RBF、多项式与 Sigmoid
  3. 使用 sklearn 进行 SVM 分类
  4. 用于回归的 SVM(SVR)
← 返回 Learn AI with Python