支持向量机算法理解

        支持向量机(Support Vector Machines,SVM),在很多地方见过,如强化学习、入侵检测中,作为机器学习的一种据说很好算法,今天开始了解一下,还不够深入,等待更新。

一、分隔超平面

假设有两类线性可分的样本,分隔超平面就是将两类样本进行分隔。在二维平面上,分隔超平面是一条一维(一元)直线f(x)=ax+b;在三维空间里,分隔超平面是一个二维(二元)平面f(x,y)=ax+by+c;更高维的空间依次类推,N维空间的分隔超平面是N-1维。几维空间主要看有几个自变量。例如一维空间,只有一个坐标轴,其分隔超平面是x=b,没有自变量,可以认为是0维。

二、间隔

样本(二维平面上的点)到分隔超平面的距离称为间隔。有时候,间隔更多的指数据集中所有点到分隔超平面最小间隔的2倍,成为分类器或数据集的间隔。

三、支持向量

离分隔超平面最近的那些点称为支持向量。

四、支持向量机目的

“机”的意思是算法。算法的目的是最大化支持向量到分隔超平面的距离,即最大化最近点的间隔。理想情况下,分隔超平面将两类完全分开,这样所有样本点都离分隔超平面很远,分类更准确。

五、法线和距离长度

分隔超平面可通过如下线性方程来表示:

       

分隔超平面的法向量为w,证明:

 支持向量机算法理解_第1张图片

点A到分隔超平面的距离为:

    

证明:

    支持向量机算法理解_第2张图片

六、分类器 

可以使用类似单位阶跃函数直接分类,即:

>0时,f()=1,<0时,f()=-1,这样根据1或-1进行分类。

七、函数间隔和几何间隔

y表示类别时,取1或-1。

函数间隔则为:y*(),始终大于0。当>0时,y=1,函数间隔>0;当<0时,y=-1,函数间隔>0。

函数间隔代表了样本是正例还是反例的确信度,因为当>0越大时,y=1的可信度越高,反之一样。

但是,当wb同时扩大倍数时,例如wb都乘以系数2,函数间隔会增加2倍,但是超平面=0不会变化。

几何间隔则为:(几何间隔实际上就是点到超平面距离)

        

证明:

支持向量机算法理解_第3张图片

这里求的r是带符号的,加上类别y即可得绝对值,因此几何间隔为:y*r,即

         

 

 

 

 

你可能感兴趣的:(机器学习)