问题描述
支持向量机,Support Vector Machine,简称为SVM,是目前数据挖掘领域中,应用最广的分类器之一。在一线性可分的数据集上,找到一个超平面,使得数据集的集合分割的间隔最大化。详细如图1。
图1 SVM的目标
数学抽象
SVM找到的超平面使数据集合分割的间隔最大化,距离超平面最近的点的距离最大。对于输入数据集,其中
的取值为
;目标是找到一个超平面
。数据点
到超平面的距离为
,最小间隔为
,SVM的目标是最大化,即:
,此时有一个限制条件
。
问题转换及求解
上述优化问题可以转换为:, st.
,其中i=1,2,…,n。
上述优化问题是一个带限制条件的凸二次优化问题,利用拉格朗日函数优化,其拉格朗日函数为,其中
。
根据拉格朗日的对偶问题,原始问题转换为的对偶问题为。
对内层最小化问题求导,得到对偶问题的变换形式:,其限制条件s.t.
和
。
SVM的变型
1. 软间隔(Soft)
标准的SVM是解决线性可分问题。对于不可分训练数据时不适应的。线性不可分意味着某些样本点不满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点引入一个松弛变量,使函数间隔加上松弛变量大于等于1,这样约束条件变为
。同时,对于每个松弛变量
,支付一个代价
,原来的目标函数就变成
,其中C是一个惩罚函数,一般由应用问题决定。
2. 核函数(Kernel)
如果有些数据使用一定的曲线能够将数据分割开来,如图2。我们将不可分的数据转换到其他空间(一般是高维空间),可以达到将不同类型的数据分开。
假设原始的数据空间为,新空间为
,定义从原空间到新空间的变换(映射):
,则原始空间的数据转成如图3所示的数据空间,从而达到线性可分的目的。
带核的SVM主要任务是找到一个合适的核函数,将原始数据空间转换到其他空间,使得转换后的数据能够在其他空间线性可分。
图2 非线性分割
图3 转换之后的空间
参考资料
1. 统计学习方法(李航)