SVM详解(包含它的参数C为什么影响着分类器行为)-scikit-learn拟合线性和非线性的SVM

引言

这篇文章详细地介绍了SVM背后的原理,它为什么是大间距分类器?分类器的参数C为什么影响着分类器的行为?核函数背后采用了什么样的技术,看过这篇文章以后,相信你能很好地理解这些问题。最后,我用scikit-learn来分别来拟合线性和非线性的SVM,让大家对SVM分类器有更加深刻的理解。

找寻最优化目标

相信所有用过SVM的人都知道它是一个大间距分类器。但是,它的原理是什么?它为什么可以最大化决策边界与样本之间的距离?下面我将一步一步的揭开它神秘的面纱。

SVM

从上图中我们可以看到,SVM会最大化间距,也就是那个 m 。但是,你可能会疑惑,上面的直线都怎么得出来的,m等于什么?我现在给你一个关于原点到直线距离的公式:

wtx=kk||w||

这里我给你一个例子,应用一下这个公式,让你更好地理解它。我相信大家很早就知道 y=x+1 这个函数图像了吧!如下:

y = -x + 1

我们可以把 y=x+1x+y=1 ,这里 w=[11]k=1.k||w||=12 ,现在你可以用勾股定理去验证一下这个结论,结果也是一样的。现在如果我们把这个公式应用到 wtx+b=1wtx+b=1 ,我们就可以得到 m=2||w||

PS:你可以把这两个式子写成 wtx=1bwtx=1b ,最后 b 会约掉,得到我上面的结果。

如果你想要了解得到 m 的全部详细过程,我下面给你的3篇文章它会从最基本的线性代数知识讲起,到最后得到 m 。但是,如果你不了解也没关系,只要用我给你的那个公式就可以的。

http://www.svm-tutorial.com/2014/11/svm-understanding-math-part-1/
http://www.svm-tutorial.com/2014/11/svm-understanding-math-part-2/
http://www.svm-tutorial.com/2015/06/svm-understanding-math-part-3/

现在,我们已经得到了间距 m=2||w|| ,我们的SVM是想要最大化这个间距,也就是最小化 12||w||2 。你可能会想这so easy啊,使 w=0 不就ok了吗!但是,大家别忘了,我们求这个最小值是有约束的,也就是要分开我们的训练样本。约束如下:

{ wTxi+b1,wTxi+b1,if yi=1if yi=1

上面公式中的 i 表示第 i 个训练样本。我们可以把上面的分段函数写的更加紧凑一些,如下:

yi(wTxi+b)1i

现在,我们可以总结一下SVM最优化目标了:

12||w||2yi(wTxi+b)1i

看到此情此景,我们是否想起了什么呢?Yeah,就是拉格朗日乘子(Lagrangemultiplier),它可以搞定这个有约束的最优化条件。

拉格朗日乘子法

为了让大家更好地理解拉格朗日乘子法,现在我用一个实例一步一步地来讲解这个知识点。

假设,我现在有个想要最大化的函数为: f(x,y)=2x+y ,这是一个三维的函数,图像如下:

f(x, y) = 2x + y

现在,我们有个约束为: x2+y2=1 ,这很明显是个圆形。因此,我们可以把这个最优化问题解释成:“单位圆上的哪个点 (x,y) 使得 2x+y ”最大?为了使这个问题简单化,我们用等高线(contour lines)来描述这个问题,如果你不熟悉它,请参考我的这篇文章:http://blog.csdn.net/xlinsist/article/details/50920479

contour lines

从上图我们可以看出,当 f(x,y) 取得最大值或最小值时的等高线与约束图像相切。其它的函数也都是同样的道理。谈到切线,让我们不禁会想到梯度,下面让我们来看看梯度在我们求解问题的道路中扮演什么样的角色?

函数 f 在点 (x0

  • 19
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值