介绍svm

来源:互联网 发布:微信辅助软件 编辑:程序博客网 时间:2024/06/06 00:48

“支持向量机”

(1) “机” —— Classification Machine,本质上,这就是一个分类器,并且是二类分类器。。

(2) “支持向量” —— 在maximum margin上的这些点就叫支持向量,为啥这些点就叫支持向量,因为最后的classification machine的表达式里只含用这些“支持向量”的信息,而与其他数据点无关:
<img src="https://pic3.zhimg.com/232ea7158d1427fa7792172194e0c376_b.jpg" data-rawwidth="223" data-rawheight="21" class="content_image" width="223">这个表达式中,只有支持向量的系数

这个表达式中,只有支持向量的系数\alpha_i不等于0

先开始说SVM的思想。我们想寻找一个分界超平面把这两类完全分开,这样的话再来一个样本点需要我们预测的话,我们就可以根据这个分界超平面预测出分类结果。
那我们如何选择这个分类超平面呢?从数学上说,超平面的公式是\omega^{T}  x +b=0,也就是说如何选取这个\omega (是个向量)。

那我们SVM算法的思路是怎样的呢?我们采用一种思路,这个分界面有什么样的特征呢?第一,它“夹”在两类样本点之间;第二,它离两类样本点中所有“离它最近的点”,都离它尽可能的远。如图所示:
<img src="https://pic2.zhimg.com/b21310bea4da968ae77bf0a24c8990d5_b.jpg" data-rawwidth="357" data-rawheight="229" class="content_image" width="357">在虚线上的点,就是我们所找到的离分解超平面最近的样本点,X类中找到了一个,O类找到了两个。我们需要分类超平面离这三个样本点都尽可能的远,也就是说,它处在两条虚线的中间。这就是我们找到的分界超平面。
在虚线上的点,就是我们所找到的离分解超平面最近的样本点,X类中找到了一个,O类找到了两个。我们需要分类超平面离这三个样本点都尽可能的远,也就是说,它处在两条虚线的中间。这就是我们找到的分界超平面。
另外,这里我们就可以解释什么是“支持向量”了,支持向量就是虚线上的离分类超平面最近的样本点,因为每一个样本点都是一个多维的向量,向量的每一个维度都是这个样本点的一个特征。比如在根据身高,体重,特征进行男女分类的时候,每一个人是一个向量,向量有两个维度,第一维是身高,第二维是体重。
介绍完SVM的基本思想,我们来探讨一下如何用数学的方法进行SVM分类。首先我们需要把刚刚说的最大间隔分类器的思想用数学公式表达出来。先定义几何间隔的概念,几何间隔就是在多维空间中一个多维点到一个超平面的距离,根据向量的知识可以算出来:
\Upsilon =\frac{\omega^{T}x+b }{ ||\omega || }
然后对于所有的支持向量,使他们到超平面\omega^{T}x+b的距离最大,也就是
max_{\omega ,b}\Upsilon = max_{\omega ,b}  \frac{\omega^{T}x+b }{ ||\omega || }
因为对于所有支持向量,他们\omega^{T}x+b 的值都是一定的,我们假设恒等于1,那么上式变成了max_{\omega }  \frac{1}{ ||\omega || } =min_{\omega}\frac{1}{2}||\omega||^{2} ,并且对于所有的样本点,满足y^{i}(\omega^{T}x+b)>=1 的约束,因此,可以利用拉格朗日乘数法计算出它的极值。也就是求出这个超平面。

总之,在计算的过程中,我们不需要了解支持向量以外的其他样本点,只需要利用相对于所有样本点来说为数不多的支持向量,就可以求出分类超平面,计算复杂度大为降低



链接:https://www.zhihu.com/question/21094489/answer/29097699

链接:https://www.zhihu.com/question/21094489/answer/50192154


原创粉丝点击