支持向量机 (SVM) 是一种监督式机器学习算法,它通过查找最优直线或超平面来对数据进行分类,从而使 N 维空间中每个类别之间的距离最大化。
SVM 于 20 世纪 90 年代由 Vladimir N. Vapnik 及其同事开发,他们于 1995 年在一篇名为“Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing”的论文中发表了这项工作1。
SVM 通常用于分类问题。它们通过查找最优超平面来区分两个类别,该超平面能使相反类别的最近数据点之间的边际最大化。输入数据中的特征数量决定了超平面是二维空间中的一条直线,还是 n 维空间中的一个平面。由于可以找到多个超平面来区分类别,因此最大化各点之间的差值可以使算法找到类别之间的最佳决策边界。这反过来又使它能够很好地概括新数据,并做出准确的分类预测。与最优超平面相邻的线被称为支持向量,因为这些向量穿过确定最大边际的数据点。
SVM 算法可处理线性和非线性分类任务,因此被广泛应用于机器学习领域。然而,当数据不可线性分离时,就需要使用核函数对数据进行高维空间转换,以实现线性分离。核函数的这种应用可称为“核技巧”,而核函数的选择,例如线性核、多项式核、径向基函数(RBF)核或 sigmoid 核,则取决于数据特征和具体用例。
线性 SVM 可用于线性可分离数据;这意味着数据无需经过任何转换即可分离成不同的类别。决策边界和支持向量构成了一条街道的外观,麻省理工学院的 Patrick Winston 教授使用“拟合尽可能宽的街道”2的类比来描述这个二次优化问题。从数学上来说,这个分离超平面可以表示为:
wx + b = 0
其中, w 是权重向量, x 是输入向量, b 是偏差项。
计算边距或类别间最大距离的方法有两种,即硬边距分类和软边距分类。如果我们使用硬边距 SVM,数据点就会完全分离到支持向量之外,或者用 Hinton 教授的比喻来说,就是“离开街道”。这可以用以下公式表示,
(wx j + b) y j ≥ a,
然后边距最大化,表示为: max ɣ= a / ||w||, 其中 a 是投影到 w 上的边距。
软边际分类更为灵活,通过使用松弛变量 (`ξ`),允许一些误分类。超参数 C 可调整边际值;C 值越大,边际值越窄,误分类越少;C 值越小,边际值越宽,误分类数据越多3。
现实世界中的很多数据都不是线性可分的,这就是非线性 SVM 发挥作用的地方。为了使数据具有线性可分性,需要对训练数据进行预处理,将其转换为高维特征空间。尽管如此,高维空间会增加数据过度拟合的风险和计算负担,从而带来更多的复杂性。“核函数”技巧有助于降低部分复杂性,提高计算效率,其方法是用等效的核函数取代点积计算4。
有许多不同的核类型可用于数据分类。一些常用的核功能包括:
多项式核
径向基函数核(也称为高斯或 RBF 核)
Sigmoid 核
支持向量回归 (SVR) 是 SVM 的扩展,适用于回归问题(即结果是连续的)。与线性 SVM 类似,SVR 也能找到数据点之间边际最大的超平面,通常用于时间序列预测。
SVR 与线性回归的不同之处在于,您需要明确指出自变量和因变量之间的关系。在使用线性回归时,了解变量之间的关系及其方向非常重要。这对 SVR 来说是不必要的,因为它们会自行确定这些关系。
在本节中,我们将讨论 SVM 分类器的构建过程、它与其他监督式学习算法的比较及其在当今工业中的应用。
与其他机器学习模型一样,首先要将数据分成训练集和测试集。顺便提一下,这假设您已经对数据进行了探索性数据分析。虽然从技术角度来看,这并不是构建 SVM 分类器所必需的,但在使用任何机器学习模型之前,这都是一个很好的做法,因为这样您可以了解任何缺失数据或异常值。
从您选择的库中导入 SVM 模块,例如 scikit-learn。在分类器上训练您的训练样本并预测响应。您可以通过比较测试集和预测值的准确性来评估性能。您可能希望使用其他评估指标,如 f1-分数、精确度或召回率。
可以调整超参数来提高 SVM 模型的性能。最佳超参数可通过网格搜索和交叉验证方法找到,这些方法会反复使用不同的核、正则化 (C) 和伽玛值,以找到最佳组合。
不同的机器学习分类器可用于相同的用例。测试和评估不同的模型以了解哪些模型性能最好非常重要。也就是说,了解每种方法的优缺点,有助于评估其在您的用例中的应用。
朴素贝叶斯和 SVM 分类法都常用于文本分类任务。当数据不可线性分离时,SVM 的性能往往优于朴素贝叶斯。也就是说,SVM 必须针对不同的超参数进行调整,并且计算成本可能会更高。
与逻辑回归相比,SVM 在处理高维和非结构化数据集(例如图像和文本数据)时通常表现更好。SVM 对过度拟合的敏感度也较低,更易于解释。不过,它们的计算成本可能更高。
与决策树相比,SVM 在处理高维数据时表现更好,而且不易出现过度拟合。尽管如此,决策树的训练速度通常更快,尤其是在数据集较小的情况下,而且通常更容易解释。
与其他模型比较类似,SVM 的训练的计算成本较高,且不易出现过度拟合,但神经网络被认为更具灵活性和可扩展性。
虽然 SVM 可以应用于多种任务,但这些是 SVM 在各行业中最常见的应用。
SVM 通常用于自然语言处理 (NLP) 中的情感分析、垃圾邮件检测和主题建模等任务。它们适用于这些数据,因为它们在处理高维数据时表现出色。
SVM 被应用于对象检测和图像检索等图像分类任务中。它还可用于安全领域,将图像分类为被篡改过的图像。
SVM 还可用于蛋白质分类、基因表达分析和疾病诊断。SVM 经常应用于癌症研究, 因为它们可以检测数据集中的细微趋势。
SVM 可以分析地下层状地球物理结构,过滤掉电磁数据中的“噪音”。它们还有助于预测土壤的地震液化潜力,这与土木工程领域息息相关。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。