支持向量机(SVM)因其在各种数据集上的准确性和卓越性能而闻名。SVM是人们几乎在任何类型的数据集上都会尝试的算法之一,由于算法的特性和工作机制,它能够从数据中学习,无论数据如何以及数据的类型是什么。
阅读本文后,将学习到:
向非技术人员解释支持向量机的直觉和工作机制时,可以采用道路的例子。正如在上图中看到的,道路上共有三条线;中线将路线分成两部分,可以被理解为将正负值分开的线,左右两侧的线则表示道路的极限,意味着超过这条线后将没有驾驶区域。同样,支持向量机通过回归和支持向量线来分类数据点,这里的上下或左右向量限制了正负值,任何位于这些线之后的数据点都被视为正负数据点。
SVM算法没有特定的假设。相反,算法从数据及其模式中学习。如果向算法输入任何数据,算法将花费时间学习数据的模式,然后根据数据及其行为产生结果。
非参数机器学习算法在模型训练期间不假设任何假设。在这些类型的算法中,模型不依赖于训练和测试阶段将使用的任何特定函数;相反,模型根据输入算法的数据观察结果进行训练,并返回输出。同样,SVM算法也不对数据做出任何假设,而是从输入算法的数据观察中学习。这就是为什么SVM被称为非参数学习算法。尽管如此,这与算法有很大的优势,因为算法的学习不受限制,任何数据都可以输入算法,并且算法可以从中学习,与参数算法不同,后者只能从满足其假设的数据中学习。
在线性SVM的情况下,算法尝试线性地拟合数据并产生线性边界来分割数据;在这里,由于回归线或边界线是线性的,其原理与线性回归相同,因此可以直接应用函数来解决问题,这使得算法成为参数的。
SVM中的支持向量是数据点,或者可以称之为回归线,它用于划分或分类数据。落在支持向量上下的数据点或观察结果随后根据其类别进行分类。在SVM中,支持向量被考虑用于分类数据观察结果,它们只负责模型的准确性和性能。在这里,向量之间的距离应该最大化以提高模型的准确性。点应该落在支持向量之后;一些数据点可能位于支持向量之前或之间。
如下方图像所示,软边界SVM中的一些数据点并不完全位于其边界限制内。相反,它们穿过边界并位于边界之外的一定距离。而硬边界SVM中的数据点被限制在各自的向量之后,不允许越过边界限制,这可以在上方图像中看到。
SVM中的松弛变量定义了在软间隔算法中,特定的数据观察结果被允许违反支持向量的极限并超出或越过它多少。这里需要注意的是,松弛变量越多,对支持向量的违反就越多。为了获得最优模型,需要尽可能减少松弛变量。
为了将数据点分类到各自的类别中,算法中可能至少有两个支持向量。在这里,数据的时间或大小不会影响向量的数量,根据算法的一般理解。至少有两个支持向量来分类数据(在二元分类的情况下)。
正如所提到的,SVM是非参数机器学习算法,不依赖于任何指定的函数;相反,它们学习数据模式然后返回输出。因此,模型需要时间来分析和从数据中学习,与参数模型不同,后者实现函数来训练数据。
SVM中的支持向量是解决数据模式并分类线性可分数据集的最佳方法之一。然而,在非线性数据的情况下,不能使用相同的决策边界,因为它会表现得较差,这就是核技巧发挥作用的地方。
核技巧允许支持向量分离非线性数据类别并使用确切的工作机制对非线性数据进行分类。在这里,有几个核技巧函数,一些流行的核函数是线性、非线性、多项式和sigmoid。
在本文中,讨论了支持向量机以及与之相关的一些面试问题。这将帮助高效、正确地回答这些问题,并增强对这种算法的了解。