SVM数学原理及代码实现


1.1二维空间简单示例

SVM(支持向量机)的典型应用是分类问题,先举一个简单的例子:

SVM数学原理及代码实现_第1张图片

在上述二维空间当中,我们将正方形是分到A类还是B类呢?SVM就是给了我们一个将正方形分到A类或是B类的方法。

在二维空间里,SVM的方法是在A类和B类中间画一条直线g(x)=0,直线上方的点属于B类,而直线下方的点属于A类:

SVM数学原理及代码实现_第2张图片

在二维空间中,g(x)的表达式很容易想到:g(x)=ax+by+c。

1.2 高维空间

上述的情景很简单,因为A类和B类都很明显的分成了两块区域,假如是如下情景:

SVM数学原理及代码实现_第3张图片

我们很难(或者几乎不能)找到一条直线将红色和蓝色的点分开,但换一个角度也能解决这个分类问题:就是将这些点放在三维空间中进行分类

SVM数学原理及代码实现_第4张图片

在这里,g(x)就不再是一条直线,而是一个平面,它的表达式也就得相应的改变:

g(x)=ax+by+cz+d。

推广到更高维的空间,。其中和x都是向量。

我们再仔细想一想,什么样的g(x)是最适合用来分类,我们如何确定?

以直线为例,我们需要找一条线既不偏向A类,也不偏向B类,也就是说A类中距离直线g(x)=0最近的点的距离和B类中距离直线g(x)=0最近的点的距离相等,其中和叫做支持向量,为了使两个类区别大,和都应该越大越好。

SVM数学原理及代码实现_第5张图片

点到直线的距离公式是:

在此,我们规定用y来代表A类和B类,+1表示B类,-1表示A类,再对整个二维空间归一化(放大或缩小),使得对于所有的样本,都有|g(x)|>=1,也就是说让A类和B类中离直线最近的训练样本的|g(x)|=1,此时,为了使间隔最大,那就得最小。

这是二维空间的例子,推广至三维空间,点到平面的距离公式:

还是满足+1表示B类,-1表示A类,对于所有的样本,都有|g(x)|>=1,

目标是使最小。

推广到高维空间,距离,目标就是使最小。

至此,我们抽象出了一个数学问题:

为了使后述推到求解方便,我们将上述数学问题进行修改:

1.3拉

你可能感兴趣的:(SVM)