SVM几种核函数的对比分析以及SVM算法的优缺点?

2024-05-18 16:36

1. SVM几种核函数的对比分析以及SVM算法的优缺点?

SVM核函数的作用
SVM核函数是用来解决数据线性不可分而提出的,把数据从源空间映射到目标空间(线性可分空间)。
SVM中核函数的种类
1、线性核
优点:
方案首选,奥卡姆剃刀定律
简单,可以求解较快一个QP问题
可解释性强:可以轻易知道哪些feature是重要的
限制:只能解决线性可分问题
2、多项式核
基本原理:依靠升维使得原本线性不可分的数据线性可分;升维的意义:使得原本线性不可分的数据线性可分;
优点:
可解决非线性问题
可通过主观设置幂数来实现总结的预判
缺点:
对于大数量级的幂数,不太适用
比较多的参数要选择
通常只用在已经大概知道一个比较小的幂数的情况
请点击输入图片描述
3、高斯核
优点:
可以映射到无限维
决策边界更为多样
只有一个参数,相比多项式核容易选择
缺点:
可解释性差(无限多维的转换,无法算w)
计算速度比较慢(解一个对偶问题)
容易过拟合(参数选不好时容易overfitting)
4、Sigmoid核
采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过学习现象。
在实战中更多的是:
特征维数高选择线性核
样本数量可观、特征少选择高斯核(非线性核)
样本数量非常多选择线性核(避免造成庞大的计算量)
SVM的优缺点
1、SVM算法对大规模训练样本难以实施
SVM的空间消耗主要是存储训练样本和核矩阵,由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。针对以上问题的主要改进有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法。如果数据量很大,SVM的训练时间就会比较长,如垃圾邮件的分类检测,没有使用SVM分类器,而是使用了简单的naive bayes分类器,或者是使用逻辑回归模型分类。
2、用SVM解决多分类问题存在困难
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
3、对缺失数据敏感,对参数和核函数的选择敏感
支持向量机性能的优劣主要取决于核函数的选取,所以对于一个实际问题而言,如何根据实际的数据模型选择合适的核函数从而构造SVM算法。目前比较成熟的核函数及其参数的选择都是人为的,根据经验来选取的,带有一定的随意性.在不同的问题领域,核函数应当具有不同的形式和参数,所以在选取时候应该将领域知识引入进来,但是目前还没有好的方法来解决核函数的选取问题。

SVM几种核函数的对比分析以及SVM算法的优缺点?

2. SVM由浅入深的尝试(五)核函数的理解

对于线性分类问题,线性分类向量机是一种非常有效的方法。但是,当分类变得不线性,线性分类向量机就会失效,我们就需要新的方法去解决,那就是非线性向量机,而在非线性向量机中,一种非常重要的方法就必须要知道,那就是核函数。
  
 对于我本人来说,因为之前也涉猎过核函数,因此,在理解上可能相对快一点。
   网上有很多对核函数的介绍,知乎上的介绍我印象很深,有兴趣的可以搜一下。
   核函数的入门理解还是要从,将二维非线性问题转化为三维线性问题。
                                          
 原本线性不可分的问题瞬间变成了线性分割面可以分类的问题。很神奇!
   具体实现的手段就是增加维度。
                                          
 上图中,我们发现x1,x2是非线性分类,于是我们通过变化,z=phi(x),我们发现,z1,z2是线性分类问题。
                      
 这里的phi(x)便是映射函数。
                                          
 其实白话理解就是,假设存在映射函数phi(x),对初始空间所有的x,z,存在
            
 那么,K(x,z)便是核函数。
                                          
 从上例可以看出,核函数一定,映射函数是不唯一的,而且当维度是无线大的时候,我们几乎无法求得映射函数,那么核函数的作用就在于此,核函数避免了映射函数的求解,叫做核技巧。
                                          
 核函数是半正定矩阵。
            
 分类决策函数为
                      
 分类决策函数为:
            
 ...太复杂,没看懂,有时间再看。
  
 我们的线性问题也可以用线性核来解决。
   Linear kernel
            
 因此,我们得到的对偶问题就可以切换,
            
 切换为
            
 注:书中的SMO算法也是用线性核的凸二次规划对偶方程求解。