最快解释 SVM 原理

SVM -- 支持向量机 ,从名字就可以看出,跟向量紧密联系。好吧,说白了 SVM 就是将向量进行二分类的算法。

什么是支持向量?

在解释这个问题之前,先解释什么叫线性分割。一条线(一维)可以用一个点(零维)分成两半,一个平面(二维)可以用一条直线(一维)分成两半,一个空间(三维)可以用一个平面(二维)分成两半。。。

假设我们的向量是 n 维,同样可以用 n-1 维的超平面分成两半,这就叫线性分割。设 我们的向量是 [x1,x2,x3,...xn],那么分割向量的超平面公式是 k1x1 + k2x2 + k3x3 + ... + knxn = m。

看到没,都是线性系数,所以叫线性分割,在一维分割的超平面公式是 kx = b,也就是 x = b/k,是一个点。在二维分割的超平面是 k1x + k2y = b,也就是一条直线。三维空间分割的超平面是 k1x + k2y +k3z = m,即一个平面。

知道了线性分割的时候,我们看一下什么是支持向量。

 

如图,三条直线都可以分割,那么到底选择哪一条?仅仅分开是不够的。
SVM 的核心思想是尽最大的努力使分开的两个类别有最大间隔,这样才使得分割具有更高的可信度。而且对于未知的新样本才有很好的分类预测能力。那么怎么描述这个间隔,并且让它最大呢?SVM 的办法是:让离分隔面最近的数据点具有最大的距离。

如图可以看到,决定了选取哪条线的,仅仅是红色区域中的两个点和蓝色区域中的一个点。那么这就称之为支持向量。因为支持向量决定了超平面的选取。支持向量就是这么来的。现在通过支持向量,我们可以得到 黑色 的分割线而不是选取绿色的分割线,因为它理支持向量的最小距离最大。

核函数

线性分割有一个最大的缺点就是必须能够找到这样的超平面才能进行分割,但是往往我们很难将向量进行线性分割。比如下面的例子:

如图笛卡尔坐标系,方框代表一类,圆形代表另一类。这个时候能够找到一条直线,对它进行有效的分割吗?答案是否定的。这种时候必须用到核函数,将二维的对象映射到三维。SVM 核函数就是为了解决这种在低维中找不到超平面而映射到更高一维的问题。令核函数 z = f(x,y) = x^2 + y^2,则我们可以将二维平面的这些点在 三维空间(x,y,z)映射成一个抛物面。在这样的三维空间下,很容易就可以找到这样的超平面 z = 1 将数据进行分割。

在上面的三维的超平面中,我们回到二维, z = 1 在三维是一个超平面,而回到二维, 即是 x^2 + y^2 =1,就是一个曲线。

看到没,核函数绝对不可能是一个线性函数。因为如果核函数是线性函数,那么在高维空间中的映射本身就是一个超平面,要么找不到另一个超平面有效分割,要么即使可以被另一个超平面有效分割,这两个超平面的交集本身在原本维度的投影就是一个超平面。因此线性的核函数将毫无意义。核函数就是通过非线性化映射在较高维度进行的线性化分割使得相当于在原本维度作了一个非线性化分割

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值