机器学习:支持向量机(SVM)与Python实现第(一)篇

前言

最近看了Andrew Ng的机器学习视频中的支持向量机,视频的内容比较浅显,没有深入解释支持向量机中的数学原理。但是对于一个比较执着于知道为什么的人,笔者还是去网上查找了有关支持向量机原理以及实现的相关资料。在查找的过程中,笔者发现支持向量机的内容还是蛮多的,于是笔者根据自己的理解,并且参考了一些相关资料,最终写下了支持向量机的四篇博客。
机器学习:支持向量机(SVM)与Python实现第(一)篇——此篇主要介绍了分类间隔,引入SVM。
机器学习:支持向量机(SVM)与Python实现第(二)篇——此篇主要介绍了使用拉格朗日乘子来简化SVM问题的优化。
机器学习:支持向量机(SVM)与Python实现第(三)篇——此篇主要介绍非线性分类(核函数)以及松弛变量。
机器学习:支持向量机(SVM)与Python实现第(四)篇——此篇主要介绍SMO算法并用python实现了简单的SVM分类器。

引子

一开始听到支持向量机这个名词,我还以为是某种机器呢。其实它确实可以算是一个机器,只不过它是算法层面的机器,用来给数据分类的。

首先我们来回顾一下逻辑回归(logistic regression)。在逻辑回归中,我们的假设函数(hypothesis function)为:

  hθ(x)=g(θTx)  

对于一个输入 x(i) , 如果 hθ(x(i))0.5 我们将预测结果为“1”,等价于 θTx0 。对于一个正例(即y=1)来说, θTx 的值越大, hθ(x) 的值就会越接近于1,也就是说我们有更大的确信度(confidence)来说明对于这个输入x,它的标签(类别)是属于1。对于反例也是同样的道理。

因此,我们其实希望得到的一组 θ ,对于每个输入x来说,当y=1时, θTx 的值都能够尽可能的大于0( θTx0 ),或者当y=0时, θTx 的值尽可能小于0( θTx0 )。这样我们就会有更大的确信度了。

现在,让我们抛开逻辑回归,来考虑一个线性分类的问题。
这里写图片描述
如上图所示,其中打叉的表示正样本,圆圈表示负样本。直线就是决策边界(它的方程表示为 θTx=0 ),或者叫做分离超平面(separating hyperplane)。
对于图中的A点来说,它距离决策边界很远。如果要我们预测一下A点对应的y值,我们应该会很确定地说y=1。反过来,对于C点来说,它距离决策边界很近。虽然它也是在决策边界的上方,但是只要决策边界有稍微的改变,它就可能变成在决策边界的下方。所以相比较而言,我们对于预测A点的自信要比预测C点要高。

所以,对于一组训练集,我们希望所有的样本都距离决策边界很远,这样我们确信度就高。而要使样本距离决策边界都很远,我们只需要保证距离决策边界最近的点的距离都很大,那么其它的点的距离肯定就更大了。怎么距离又是说大又是说小呢?理解如下:

分类超平面可以有多个,上图中的灰色线已经将两个类别分开了,但是为什么说它not as good呢?因为距离灰色线最近的点(最下面的红色三角形)的边距很小(small margin)。相反,对于黑色线,距离它最近的点(最上面的红色的三角形)的边距很大(large margin),这个大是指比灰色线的那个margin要大。我们要找的就是看看哪个超平面的最近点的边距最大。

那么我们怎么来刻画这个距离(margin)呢?

首先为了方便,我们分类的标签记为 y{ 1,1} 而不是逻辑回归中的 { 0,1} ,这只是一种区分的方式,只是为了方便。另外,以前我们用的是参数向量 θ ,现在将 θ 分成w和b,其实就是 b=θ0x0=1 。所以分类器写为:

hw,b(x)=g(wTx+b)
其中, g(z)=1 if z0, g(z)=1 otherwise ,注意这里不像逻辑回归那样先算出概率,再判断y是否等于1。这里直接预测y是否为1。


函数间距(functional margins)与几何间距(geometric margins)

这里写图片描述d
如上图,点x到蓝色线的距离 L=βx ,也就是 <x,w>w 。这是高中的几何知识啦。

现在让我们来定义一下函数间距。对于一个训练样本 (x(i),y(i)) ,我们定义相应的函数间距为:

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值