一.概述

原理:支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。  SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题。支持向量机是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析。它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器。

 

优缺点:
(1)优点:
         ① SVM 是一种有坚实理论基础的新颖的小样本学习方法.它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法.从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题.
         ② SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”.
         ③ 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。增、删非支持向量样本对模型没有影响;支持向量样本集具有一定的鲁棒性;有些成功的应用中,SVM 方法对核的选取不敏感。
(2)缺点:
        ① SVM算法对大规模训练样本难以实施。由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间.针对以上问题的主要改进有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法
        ② 用SVM解决多分类问题存在困难。经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题.可以通过多个二类支持向量机的组合来解决.主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决.主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度.如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。

 

注意:

SVM并不是不适合大规模数据,而应该说,SVM在小样本训练集上能够得到比其它算法好很多的结果。支持向量机之所以成为目前最常用,效果最好的分类器之一,在于其优秀的泛化能力,这是是因为其本身的优化目标是结构化风险最小,而不是经验风险最小,因此,通过margin的概念,得到对数据分布的结构化描述,因此减低了对数据规模和数据分布的要求。支持向量:是指那些在间隔区边缘的训练样本点;ɑ=0,则点为非边界点,反之则为边界点,即真正发挥作用的数据点,ɑ值不为0的点

 

二.决策方程

决策边界:越胖越好

 

决策方程:

  

   ========

 

三.目标

优化的目标:找到一个条线(w和b),使得离该线最近的点(雷区)能够最远

点到直线距离化简:

  (由于所以将绝对值展开原始依旧成立)

放缩变换:

 

优化目标:

  (由于,只需要考虑

 

四.目标函数求解

目标:

  约束条件

常规套路:将求解极大值问题转换成极小值问题

求解:应用拉格朗日乘子法求解

 

五.拉格朗日乘子法(求极值)

带约束的优化问题:

 

  

原始转换:

  

式子:

  (约束条件

求导:分别对w和b求偏导,分别得到两个条件(由于对偶性质)

      ->      

对w和b求偏导:

  

带入原始:

   其中 

 

 

继续对ɑ求极大值:

  (条件

极大值转换成求极小值:

  (条件

 

六.SVM求解实例

 3个点,其中正例X1(3,3) ,X2(4,3) ,负例X3(1,1),求解最佳超平面,即支持向量机的方程。

求解:

   

    约束条件:

    计算过程中条件:分别对ɑ1和ɑ2求偏导,偏导等于0;或令ɑ1和ɑ2为0

平面方程:

   0.5x1+0.5x2-2=0

 

七.软间隔(soft-margin)

有时候数据中有一些噪音点,之前的方法要求要把两类点完全分得开,这个要求有点过于严格了,我们来放松一点!为了解决该问题,引入松弛因子

松弛因子:

 

新目标函数:

  (当C趋近于很大时:意味着分类严格不能有错误;当C趋近于很小时:意味着可以有更大的错误容忍。C是我们需要指定的一个参数)

拉格朗日乘子法:

  

  

 

 

八.低维不可分问题

 核变换:既然低维的时候不可分,那就给它映射到高维

 目标:找到一种变换的方法,也就是

高斯核函数:

   

线性核函数:

高斯核函数: