支持向量机(SVM)

来源:互联网 发布:55开的淘宝店地址 编辑:程序博客网 时间:2024/05/29 04:46

问题描述

支持向量机,Support Vector Machine,简称为SVM,是目前数据挖掘领域中,应用最广的分类器之一。在一线性可分的数据集上,找到一个超平面,使得数据集的集合分割的间隔最大化。详细如图1。


                                                    图1 SVM的目标

数学抽象

SVM找到的超平面使数据集合分割的间隔最大化,距离超平面最近的点的距离最大。对于输入数据集,其中的取值为;目标是找到一个超平面。数据点到超平面的距离为,最小间隔为,SVM的目标是最大化,即:,此时有一个限制条件

问题转换及求解

上述优化问题可以转换为:, st. ,其中i=1,2,…,n。

上述优化问题是一个带限制条件的凸二次优化问题,利用拉格朗日函数优化,其拉格朗日函数为,其中

根据拉格朗日的对偶问题,原始问题转换为的对偶问题为

对内层最小化问题求导,得到对偶问题的变换形式:,其限制条件s.t.

求解上述问题的基本方法是SMO算法,该算法本质是二次线性规划问题(具体的过程我看的不是太清楚)。

SVM的变型

1.     软间隔(Soft)

标准的SVM是解决线性可分问题。对于不可分训练数据时不适应的。线性不可分意味着某些样本点不满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点引入一个松弛变量,使函数间隔加上松弛变量大于等于1,这样约束条件变为。同时,对于每个松弛变量,支付一个代价,原来的目标函数就变成,其中C是一个惩罚函数,一般由应用问题决定。

2.     核函数(Kernel)

如果有些数据使用一定的曲线能够将数据分割开来,如图2。我们将不可分的数据转换到其他空间(一般是高维空间),可以达到将不同类型的数据分开。

假设原始的数据空间为,新空间为,定义从原空间到新空间的变换(映射):,则原始空间的数据转成如图3所示的数据空间,从而达到线性可分的目的。

带核的SVM主要任务是找到一个合适的核函数,将原始数据空间转换到其他空间,使得转换后的数据能够在其他空间线性可分。


图2 非线性分割


图3 转换之后的空间

参考资料

1.      统计学习方法(李航)


0 0
原创粉丝点击