一、算法介绍
支持向量机(Support Vector Machine,SVM)是一种常用的监督学习算法,用于分类和回归任务。SVM的基本原理是构建一个最优超平面来分割不同类别的数据点。
在二分类问题中,SVM试图找到一个能够将两个类别的数据点尽可能分开的超平面。超平面是一个d-1维的线性子空间,其中d是数据的特征维度。SVM的目标是找到具有最大间隔(即离超平面最近的样本点的距离最大)的超平面。
SVM的核心思想是将数据映射到高维特征空间中,通过引入核函数可以避免直接计算高维特征空间的复杂性。常用的核函数有线性核、多项式核和高斯核等。这些核函数能够将数据从原始空间映射到一个更高维度的空间,使得原本线性不可分的数据在新的空间中变得线性可分。
SVM的训练过程可以形式化为一个凸优化问题,通过最小化目标函数来确定超平面的位置和宽度。目标函数通常由数据的误分类损失和正则化项组成,正则化项是为了防止过拟合。
一旦训练完成,SVM可以用于对新样本进行分类或回归预测。对于分类问题,新样本将被映射到特征空间中,并根据其位置与超平面的关系来判断其所属类别。对于回归问题,SVM可以通过拟合一个边界带来预测。
SVM具有一些重要的特性,包括结构化风险最小化、稀疏性和鲁棒性等。它在处理小样本、高维数据和非线性问题方面表现出色,并在许多领域中得到广泛应用,如图像分类、文本分类、生物信息学和金融预测等。
二、基于最大间隔分隔数据
2.1 线性模型
在二维空间上,两类点被一条直线完全分开叫做线性可分。如下图,在二维坐标下,样本空间中找到直线, 将不同类别的样本分开。
上述将数据集分隔开来的直线称为分隔超平面,即
2.2 超平面
由于数据点都在二维平面上,所以此时分隔超平面就只是一条直线。但是,如果所给的数据 集是三维的,那么此时用来分隔数据的就是一个平面。显而易见,更高维的情况可以依此类推。如果数据集是1000维的,那么就需要一个999维的某某对象来对数据进行分隔。当数据集是N维时,需要一个N-1维的某某对象来对数据进行分隔。N-1维的该对象被称为超平面(hyperplane),也就是分类的决策边界。 分布在超平面一侧的所有数据都属于某个类别,而分布在另一侧的所有数据则属于另一个类别。

从二维扩展到多维空间中时,将 D0和 D1 完全正确地划分开的 就成了一个超平面。为了使这个超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
如上图,有五条直线,它们都能将数据分隔开,但是其中哪一条最好呢?我们希望找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。这里点到分隔面的距离被称为间隔(margin)。我们需要的是间隔尽可能地大,这是因为如果犯错或者在有限数据上训练分类器的话,分类器尽可能健壮。所以,应选择”正中间”的那条直线 , 容忍性好, 鲁棒性高, 泛化能力最强,选择最大化决策边界的边缘。
2.3 支持向量
如下图,支持向量(support vector)就是离分隔超平面最近的那些点。
超平面方程: