首页 > 代码库 > SVM 支持向量机

SVM 支持向量机

(支持向量机)support vector machine是一种二分类模型,是寻求结构风险最小,实现经验和置信范围最小化。

它的基本模型是定义在特征空间上的间隔最大化的线性分类器,间隔最大化使得它有区别于感知机,并且是唯一的。

学习策略:间隔最大化(解凸二次规划的问题)

 

线性分类器也叫感知机,就是在N维的数据空间找到一个分类超平面。然后svm其实就是寻找间隔最大化的线性分类器。

 

首先说他在线性可分的数据集上的:

超平面就是在n维空间上可以将数据线性分类的平面。

超平面: WTX+b=0  W为向量,b是截距 ,这样就通过寻找最大间隔,确定W和b。把求f(x)=WTX+b转化为求w与b的最优化问题。

 

函数间隔:人为定义的,就是yf(x)

几何间隔:点到超平面的距离,f(x)/||w||

由于我们可以通过缩放w的倍数,设置函数间隔为1,这样就变成求max 1/||w||,也就是求min 1/2w2问题当然还有约束条件st。变成就凸二元问题。

还有可以通过对偶方法求解。

 

但是由于数据有时候不能够线性可分,但是通过将他们映射到高维空间,就可以线性可分。所以这样svm就可以处理线性不可分的问题。但是由于维数的增加,这样会导致“维数灾难”,

导致计算复杂,这时候就可以使用核函数,核函数就我目前理解就是通过使用它可以在数据原来的维度上计算内积,之后在分类,而不用计算高维。具体原理,看不懂。

核函数有好几个以及对应的参数,这个上网查吧。