支持向量机 (SVM)
探索支持向量机 (SVM) 在分类、回归和异常值检测方面的强大功能,以及实际应用和见解。
支持向量机(SVM)是一种稳健、多用途的
监督学习算法,主要用于
主要用于图像分类和回归任务。
与某些仅将一条线拟合到数据上的算法不同,SVM 会寻找最佳超平面--决策边界,从而将数据点最好地分为不同的类别。
边界,它能最好地将数据点分成不同的类别。SVM 的决定性特征是它专注于
最大化边际,即决策边界与每个类别中最近的数据点之间的距离。
类之间的距离。通过优先考虑这种广泛的分离,该模型在未见过的数据上实现了更好的泛化,从而有效地
减少过拟合的风险。
线性分类器相比,有效降低了过拟合的风险。
SVM 的核心机制
要了解 SVM 如何运行,将数据点可视化地绘制在多维空间中是很有帮助的。
每个维度代表一个特定的属性或特征。
-
最佳超平面:该算法能识别出一个分割输入变量空间的平面。在二维
在二维空间中,这是一条直线;在三维空间中,这是一个平面;在更高的维度中,这是一个超平面。目标是
找到特定的超平面,使其与任何类别的最近数据点保持最大距离。
-
支持向量:这些是最接近决策边界的特定数据点。它们
之所以称为 "支持向量",是因为它们基本上支持或定义了超平面的方向和位置。
超平面的方向和位置。如果移除其他数据点,边界会保持不变,但移动支持向量会改变
模型。你可以在
Scikit-learn SVM 文档中了解更多。
-
内核技巧现实世界的数据很少是线性可分的。SVM 使用一种名为 "核技巧 "的技术来解决这个问题。
该技术可将数据投射到一个高维空间,在该空间中,线性分离器可有效地
划分类别。常见的核包括径向基函数(RBF)和多项式核,允许
模型能够处理复杂的非线性关系,这些关系通常出现在
自然语言处理 (NLP)
任务。
实际应用
在现代
在现代深度学习架构出现之前,SVM
的黄金标准。
模式识别问题的黄金标准。
-
生物信息学与医疗保健:SVM 在
在医疗保健领域的人工智能中发挥着重要作用,尤其是在
分类问题,如蛋白质远程同源检测和基于微阵列基因表达数据的癌症分类。
表达数据进行癌症分类。SVM 能够处理样本较少的高维数据,因此非常适合分析复杂的生物数据集。
复杂的生物数据集。
-
文本分类:在
在数据分析领域,SVM 被广泛用于文本
和超文本分类。在标准的归纳式文本分类设置中,它们大大减少了对标注训练实例的需求。
在标准的归纳文本分类设置中,它们大大减少了对标注训练实例的需求,使其在垃圾邮件检测和情感
分析等应用。
-
手写识别:SVM 历来在手写数字识别任务中表现出色。
识别任务中表现出色,例如在
MNIST 数据集中的数字。而
卷积神经网络 (CNN)
已在很大程度上被卷积神经网络(CNN)所取代,但 SVM 仍然适用于基准测试和训练数据有限的情况。
训练数据。
实施 SVM 分类器
虽然现代任务通常利用
Ultralytics YOLO11 用于端到端物体检测的模型、
SVM 仍是结构化数据的有力工具,也可作为提取特征后的最终分类层。下面
是一个使用流行的 scikit-learn 库来训练一个简单的分类器。
from sklearn import svm
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# Generate synthetic classification data
X, y = make_classification(n_features=4, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# Initialize and train the Support Vector Classifier
clf = svm.SVC(kernel="linear", C=1.0)
clf.fit(X_train, y_train)
# Display the accuracy on the test set
print(f"Accuracy: {clf.score(X_test, y_test):.2f}")
SVM 与相关算法的比较
将 SVM 与其他机器学习技术区分开来,有助于为预测建模项目选择合适的工具。
预测建模项目。
-
逻辑回归:两者都是线性分类器,但优化目标不同。逻辑回归最大化的是
概率),而 SVM 则最大化类别间的几何差值。SVM 通常在
而 Logistic 回归则提供校准概率。
-
K-Nearest Neighbors (KNN):KNN 是一种非参数、基于实例的学习器,它根据一个点的大多数邻居的类别对其进行分类。
邻居进行分类。相比之下,SVM 是一种参数模型,可以学习全局边界。SVM 通常在训练完成后提供更快的
推理延迟更快。
与 KNN 不同,SVM 不需要存储整个数据集。
-
决策树:决策树利用分层规则将数据空间分割成矩形区域。SVM 可以创建复杂的
内核),而决策树可能很难在不变得过深和容易过度拟合的情况下逼近这些内核。
决策树可能很难在不过度深入和不过度拟合的情况下接近这些边界。
-
深度学习(如YOLO11):SVM 在很大程度上依赖于人工
特征工程,由领域专家
选择相关输入。现代模型,如 YOLO11等现代模型擅长
直接从原始像素中自动提取特征
等现代模型擅长直接从原始像素中自动提取特征,这使它们在执行复杂任务(如实时
物体检测和
实例分割等复杂任务。
对于那些对基础理论感兴趣的人,由
Cortes 和 Vapnik(1995 年)的原始论文为今天使用的软边际 SVM
软边际 SVM 的数学基础。