1.SVM 讲解
SVM 是一个很复杂的算法,不是一篇博文就能够讲完的,所以此篇的定位是初学者能够接受的程度,并且讲的都是 SVM 的一种思想,通过此篇能够使读着会使用 SVM 就行,具体 SVM 的推导过程有一篇博文是讲得非常细的,具体链接我放到最后面,供大家参考。
1.1 支持向量机 (SVM) 的由来
首先我们先来看一个 3 维的平面方程:Ax+By+Cz+D=0
这就是我们中学所学的,从这个方程我们可以推导出二维空间的一条直线:Ax+By+D=0
那么,依次类推,更高维的空间叫做一个超平面:
x 代表的是一个向量,接下来我们看下二维空间的几何表示:
SVM 的目标是找到一个超平面,这个超平面能够很好的解决二分类问题,所以先找到各个分类的样本点离这个超平面最近的点,使得这个点到超平面的距离最大化,最近的点就是虚线所画的。由以上超平面公式计算得出大于 1 的就属于打叉分类,如果小于 0 的属于圆圈分类。
这些点能够很好地确定一个超平面,而且在几何空间中表示的也是一个向量,那么就把这些能够用来确定超平面的向量称为支持向量(直接支持超平面的生成),于是该算法就叫做支持向量机 (SVM) 了。
1.2 如何找到超平面
函数间隔
在超平面 wx+b=0 确定的情况下,|w_x+b | 能够表示点 x 到距离超平面的远近,而通过观察 w_x+b 的符号与类标记 y 的符号是否一致可判断分类是否正确,所以,可以用 (y(w*x+b)) 的正负性来判定或表示分类的正确性。于此,我们便引出了函数间隔(functional margin)的概念。定义函数间隔(用
表示) 为:
但是这个函数间隔有个问题,就是我成倍的增加 w 和 b 的值,则函数值也会跟着成倍增加,但这个超平面没有改变。所以有函数间隔还不够,需要一个几何间隔。
几何间隔
我们把 w 做一个约束条件,假定对于一个点 x ,令其垂直投影到超平面上的对应点为 x0 ,w 是垂直于超平面的一个向量,为样本 x 到超平面的距离,如下图所示:
根据平面几何知识,有
1.3 最大间隔分类器
对一个数据点进行分类,当超平面离数据点的 “间隔” 越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个 “间隔” 值。这个间隔就是下图中的 Gap 的一半。
1.4 后续问题
至此,SVM 的第一层已经了解了,就是求最大的几何间隔,对于那些只关心怎么用 SVM 的朋友便已足够,不必再更进一层深究其更深的原理。
SVM 要深入的话有很多内容需要讲到,比如:线性不可分问题、核函数、SMO 算法等。
在此推荐一篇博文,这篇博文把深入的 SVM 内容也讲了,包括推导过程等。如果想进一步了解 SVM,推荐看一下:
支持向量机通俗导论:blog.csdn.net/v_JULY_v/ar…
1.5 新闻分类实例
.
.
.
.
欢迎添加微信交流!请备注 “机器学习”。