支持向量机(SVM)详解

作为数据科学从业者,必须了解手头上可用的不同算法。重要的是要知道何时使用哪种算法。以“回归”为例,可以将其视为一把能够高效处理数据的剑,但它无法应对高度复杂的数据。相反,“支持向量机”(SVM)就像一把锋利的刀——它适用于小型数据集,在构建机器学习模型时,对于复杂数据集来说,它可以更强大、更有力。

SVM是一种监督学习算法,可以用于分类回归问题。然而,它主要用于分类问题。由于其在计算能力较低的情况下也能达到显著的准确性,因此它是一种高效且受青睐的算法。

在本文中,将探讨SVM的工作原理以及算法中使用的不同核函数。

什么是SVM

SVM算法中,将每个观测值作为n维空间中的一个点(其中n是数据集中特征的数量)。任务是找到一个最优超平面,成功地将数据点分类到它们各自的类别中。

在深入探讨SVM的工作原理之前,首先需要理解算法中使用的两个基本术语:“支持向量”和“超平面”。

超平面是SVM中区分两个类别的决策边界。落在超平面两侧的数据点可以归属于不同的类别。超平面的维度取决于数据集中输入特征的数量。如果有2个输入特征,超平面将是一条线;如果特征数量是3,它将成为一个二维平面。

支持向量是靠近超平面并影响超平面位置和方向的数据点。必须选择一个超平面,使得支持向量与超平面之间的距离(即边缘)最大化。即使是这些支持向量的微小干扰也可能会改变超平面。

SVM如何工作?

现在已经清楚了与SVM相关的术语,让看看算法是如何工作的。例如,有一个分类问题,需要将红色数据点与蓝色数据点分开。

由于这是一个二维问题,决策边界将是一条线;对于三维问题,需要使用平面;类似地,随着特征数量的增加,解决方案的复杂性也会增加。

如上图所示,有多个线条成功地分离了数据点。但目标是寻找最佳解决方案。有一些规则可以帮助识别最佳线条。

即选定的线条必须能够成功地将所有数据点分离到相应的类别中。在示例中,可以清楚地看到线条E和D正在错误地分类一个红色数据点。因此,对于这个问题,线条A、B、C比E和D更好。所以,将放弃它们。

这意味着必须选择一条能够完美分离点的线条。如果谈论示例,如果得到一个新的红色数据点更接近线条A,如下图所示,线条A将错过分类该点。同样,如果得到一个新的蓝色实例更接近线条B,那么线条A和C将成功分类数据,而线条B将错过分类这个新点。

需要注意的是,在这两种情况下,线条C都成功地分类了所有数据点。为什么呢?为了理解这一点,让逐一考虑所有线条。

首先,考虑线条A。如果将线条A向左移动,可以看到它几乎没有机会错过分类蓝色点。另一方面,如果将线条A向右移动,它将很容易错过分类红色点。原因是在左侧的边缘,即最近的数据点与线条之间的距离很大,而在右侧的边缘距离非常低。

类似地,在线条B的情况下。如果将线条B向右移动,它在右侧有足够的边缘,而它将错误地分类左侧的实例,因为左侧的边缘非常低。因此,B不是完美解决方案。

在线条C的情况下,它在左侧和右侧都有足够的边缘。这个最大边缘使线条C对可能出现的新数据点更加稳健。因此,C是最佳选择,成功地分类了所有数据点,并且具有最大边缘。

这就是SVM寻找的,它旨在获得最大边缘,并创建一条与两侧等距离的线条,即案例中的线条C。因此,可以说C代表了具有最大边缘的SVM分类器。

现在让看看下面的数据,可以看到这不是线性可分的数据,所以SVM在这种情况下不起作用。如果尝试用线条对这种数据进行分类,结果将不会令人满意。

那么,SVM能否对这种数据进行分类呢?为了解决这个问题,需要创建一个看起来像这样的决策边界。问题是,是否可能使用SVM创建这样的决策边界。

答案是肯定的。SVM通过将数据投影到更高维度来实现这一点。如下所示的图像。在第一种情况下,数据不是线性可分的,因此将其投影到更高维度。

如果有更复杂的数据,那么SVM将继续将数据投影到更高维度,直到它变得线性可分。一旦数据变得线性可分,就可以像以前的问题一样使用SVM进行分类。

投影到更高维度

现在让了解SVM如何将数据投影到更高维度。以这个数据为例,它是一个圆形非线性可分的数据集。

Z = X^2 + Y^2

现在将这个特征Z相对于X绘制出来,这将给线性可分的数据,如下所示。在这里,使用基础特征X和Y创建了一个映射Z,这个过程被称为核转换。

精确地说,一个核接受特征作为输入,并在更高维度创建线性可分的数据。现在问题是,必须手动执行这个转换吗?答案是不。SVM自己处理这个过程,只需要选择核类型。

让快速了解SVM中可用的不同核类型。

首先,在线性核中,决策边界是一条直线。不幸的是,大多数现实世界的数据不是线性可分的,这就是线性核在SVM中不广泛使用的原因。

这是最常用的核。它将数据投影到高斯分布中,其中红色点成为高斯表面的峰值,绿色数据点成为表面的基底,使数据线性可分。

但是,这个核容易过拟合并捕获噪声。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485