支持向量机浅析(1):训练数据线性可分时的算法

原创 2016年11月30日 10:43:55

例子
  给定数据 xi 和标签 yi,比如:

xi yi
(2,3) -1
(3,2) -1
(5,7) +1
(8,9) +1

  如何寻找一条直线

w1x1+w2x2+b=0(1)

把这组点分开,使得两类之间间隔最大?

  这个问题可归结为寻找分割线:wx+b=1wx+b=1。我们假设每个点都有标签yi,满足下面约束条件:
  对于所有使yi=1的上标 i,有 wxi+b1;
  对于所有使yi=1的上标 i,有 wxi+b1
  该约束条件等价于:

yi(wxi+b)1, i=1,2,...,l(2)

数学模型

  由于直线 wx+b=1wx+b=1 之间的距离:

d=2w21+w22

  间隔最大化实际上就是2w21+w22最大化,也就是w21+w22最小化。就本文例子来看,约束方程如下:

mins.t.w21+w222w13w2b3w12w2b7w1+8w2+b8w1+9w2+b1111(3)

  显然这是二次规划问题。

  习惯上,支持向量机的规划模型表述为下述形式:

min12w2 s.t.,yi(wx+bi)1,i=1,2,...,n(4)
  

二次规划求解方法

  不打算太过正式讨论二次规划求解方法,等我有时间全面搜集一下素材,专门讨论一下。二次规划求解算法的开源代码应该也容易找到,可能根本不需要自己动手写这些代码。这里简单说一下基本思路,不一定真有用,只能解决有强迫症的读者的思想性疑问。支持向量机给出的二次规划模型有一定特殊性,我会另写文章分析更好的求解方法。

  对于数学规划问题而言,如果最优解落在可行域内部,则最优解通常是目标函数的无约束极值之一;否则,最优解应该落在可行域边界。如果不考虑(2)式的约束条件,它的唯一的一个无约束极值点显然是 w1=0,w2=0。依据(1)式,显然 b=0,这显然不符合后面的约束条件。好吧,既然无约束极值点落在了约束条件之外,那么,规划(3)的最优解一定落在可行域的边界上。比如第一条边界上的最优解可通过下面规划问题求得:

mins.t.w21+w222w13w2b=1

  最后把答案代入约束条件验证,即可求出最优解,详细步奏不再赘述。(其实这个过程还是有些复杂,我会在稍后的博文中讨论这个话题。)

版权声明:本文为博主原创文章,未经博主允许不得转载。

支持向量机(SVM)非线性数据分割

翻译自OpenCV官网,支持向量机非线性分割原理介绍,仅供学习参考~~
  • eric41050808
  • eric41050808
  • 2014年04月28日 14:37
  • 2281

机器学习练习(二)——多元线性回归

作者:John Wittenauer 翻译:GreatX 源:Machine Learning Exercises In Python, Part 2这篇文章是一系列 Andrew Ng 在 Co...
  • And_w
  • And_w
  • 2016年10月03日 12:58
  • 2323

机器学习练习之线性回归

还是要打好基础吧,再做做机器学习最基本的技术和方法。这个练习是线性回归,很基本的数据预测方法,练习来自Andrew Ng的http://openclassroom.stanford.edu/MainF...
  • u012841335
  • u012841335
  • 2014年01月17日 17:59
  • 1962

机器学习练习之多变量线性回归

在做完上一篇只有一个变量的线性回归后,这里继续完成多元线性回归模型的练习:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?c...
  • u012841335
  • u012841335
  • 2014年01月17日 22:45
  • 1465

matlab编写线性单元的梯度下降算法(delta法则)

(一)说说要解决的问题          这里只是运用BP感知器的一些知识,用delta法则方式解决一个简单的线性或者非线性可分问题,比如这里围绕的就是坐标系下的8个点,这8个点很明显的划分两类,现...
  • on2way
  • on2way
  • 2014年10月09日 20:45
  • 1886

数据挖掘算法:线性回归深度剖析

线性回归介绍之一 作者:未知      整理:Lestat 线性回归在所有的统计方法中绝对占有不可忽视的一席之地,其用途之广泛毋庸置疑,更重要的是它是整个回归家族中最为简单、也最容易理解的方法,几...
  • zhangbdaxia
  • zhangbdaxia
  • 2014年03月05日 18:34
  • 2269

采用线性SVM对线性不可分的数据进行分类(含matlab实现)

本文介绍一种常用的分类器设计技巧[1]:将线性不可分的数据映射到高维后,使其变得线性可分,然后利用前面介绍的线性分类器进行无(训练)误差分类。 假设我们有如下图所示的训练数据,如何对其进行分类? 显然...
  • ranchlai
  • ranchlai
  • 2013年09月02日 11:03
  • 2810

线性可分支持向量机

支持向量机(Support Vector Machines, SVM)是一种二类分类模型。
  • linchen2013
  • linchen2013
  • 2014年04月27日 12:53
  • 2363

神经网络 之 线性单元

本文结构: 什么是线性单元 有什么用 代码实现 1. 什么是线性单元线性单元和感知器的区别就是在激活函数:感知器的 f 是阶越函数:线性单元的激活函数是线性的:所以线性模型的公式如下:2. 有什么用感...
  • aliceyangxi1987
  • aliceyangxi1987
  • 2017年05月01日 11:54
  • 683

8051 P0口分时复用详解

51单片机 P0口工作原理详细讲解 一、P0端口的结构及工作原理       P0端口8位中的一位结构图见下图:         由上图可见,P0端口由锁存器、输...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2014年05月11日 21:37
  • 4925
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:支持向量机浅析(1):训练数据线性可分时的算法
举报原因:
原因补充:

(最多只允许输入30个字)