Soft-margin SVM
前面几篇博文都很理论,没有实例,更没有代码,不太像我的风格,那么接下来就直接来解决一个问题.$ $
问题
显然利用hard-margin svm使可以把它们分开的.但是这不是我们想要的结果,因为最左边那个蓝色的点是一个outlier.因此就有了今天的soft-margin svm
理论
我们把原来的优化问题加入一些新的惩罚项,如下:
\[ \mathop{}_{w,b}^{\min}\qquad \frac{1}{2}||w||^{2}+C\sum_{i=0}^{m}\xi _{i}\\\\ \begin{align} s.t.\qquad y^{(i)}(w^{T}x^{(i)}+b)\geq 1-\xi_{i},\qquad &i=1,2,\ldots,m\\\\ \xi_{i}\geq 0,\qquad &i=1,2,\ldots,m \end{align} \]
首先,上面的式子能达到不需要数据完全分开的效果.其次,\(\xi\)表示点与1的margin(距离)大小,\(\xi\)小于1表示在margin和hyperplane之间,大于1,则跑到hyperplane的另一端,即分错了
C越大,对错误的容忍度就越小,margin越小
C越小,对错误容忍度就越高,margin越大
代码
|
|
代码运行结果(注:相同颜色为同一类,五角星为support vector):
C=1
C=100
推荐:
SVM Linear Classification
Soft-Margin Support Vector Machine