机器学习实战----初识支持向量机(SVM)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangyingjie09/article/details/80365069

一什么是支持向量机

       SVM - 支持向量机。支持向量机,其含义是通过支持向量运算的分类器。其中“机”的意思是机器,可以理解为分类器。它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

二基本概念

1间隔

给定训练样本集d = {(X 1,Y 1),(X 2,Y 2),......,(X ,Y )},Y ∈{-1,+ 1},分类学习的基本思想是基于训练集d的样本空间中找到一个划分超平面,将不同类别的样本分开。这样的超平面可能有很多个,我们应该找位于两类训练样本“正中间”的划分超平面,该划分超平面对训练样本容忍性最好。在样本空间中,划分超平面可通过线性方程来描述:w T x + b = 0,其中w =(w1; w2; ......; wd)为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离具体推导公式),

假设超平面(w,b)能将训练样本正确分类,即对于(x i,y i)∈D,若y i = + 1,则有w T x + b> 0; y i = -1,则有w T x + b <0。得到

距离超平面最近的几个训练样本使得上面的等式成立,他们被称为“支持向量”,两个异类支持向量到超平面的距离之和为γ=2d=2/||w||,这个γ被称为间隔。想要找到具有最大间隔的划分超平面,也就是使得γ最大,即最大化||w||-1,这等价于最小化||w||2   ,min(1/2||w||2),这就是SVM的基本型。

2 对偶问题

min(1/2||w||2)本身是一个凸二次规划问题,能直接用现成的优化计算求解,但我们可以用更高效的办法。使用拉格朗日乘子法可到其“对偶问题”。具体说来每条约束添加拉格朗日乘子ai≧0,则该问题的拉格朗日函数可写成:

,其中a=(a1;a2;……am;);令L(w,b,a)对w和b的偏导为零可得

将w带入L(w,b,a),可将w和b消去,再考虑上面式子的约束条件就得到对偶问题:


3 核函数

      实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去。但进一步,如果凡是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到可怕的)。那咋办呢?此时,核函数就隆重登场了,核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。

举例:为相同颜色的点分类


用线性函数无法将两种不同颜色的原点区分开;很自然的我们会想到曲线救国,如下图所示:



我们可以在不增加参数的前提下,扩展一个维度,也就是第三维。​​第三维可以用x,y的关系表示.x + y,xy,x 2

。这三个函数关系只有XY能够区分开四个点如下图所示:


增加的第三维对应的值为0或者2,这样就把四个数区分开了。


很容易借助第三维,我们可以获得一个超平面,用于分类数据。


核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。其实就是运用原有可调参数,将可调参数的某个或某些函数关系来增加维度,用于分类。

相关视频地址:核函数

总结:

核函数是为了再不增加可调参数的情况下,增加参数某种或某些函数关系来增加维度用于分类数据;间隔是为了找到划分的超平面;对偶问题是为了更好的求间隔距离。

参考文章:核函数(核函数)与SVM

猜你喜欢

转载自blog.csdn.net/zhangyingjie09/article/details/80365069