美文网首页
支持向量机(SVM)

支持向量机(SVM)

作者: 闫阿佳 | 来源:发表于2017-10-13 16:03 被阅读0次

参考博客:http://blog.csdn.net/szlcw1/article/details/52259668

1.谈谈对支持向量机的理解

  • 支持向量机是一种二分类模型,基本模型是找到特征空间中间隔最大的线性分类器。感知机模型只要找到分离超平面即可,而SVM不但要分离样本,还要满足间隔最大。
  • 当训练样本线性可分时,通过硬间隔最大化得到一个线性可分SVM。
  • 如果训练样本只是接近线性可分,需要引入松弛变量,通过软间隔最大化,得到线性SVM。
  • 当训练样本线性不可分,需要引入核技巧将特征空间从低维映射到高维,使得样本接近可分,并且通过软间隔最大化,学习得到非线性支持向量机。

公式推导:硬间隔最大化(几何间隔)-> 学习的对偶问题 -> 软间隔最大化(引入松弛变量)-> 非线性支持向量机(核技巧)。

2. 引入对偶问题的作用:

  • 对偶问题往往更易求解(当寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。先极小化L(w,b,a),将w,b以a表示出来,再极大化a的函数。)
  • 自然引入核函数,进而推广到非线性分类问题。(或者表达为:通过拉格朗日将目标函数融入到一个新的函数中,然后在从minmax的原始问题,转化为maxmin的对偶问题,一者因为是的近似解,二者,转化为对偶问题后,更容易求解;)

3. KKT条件

Paste_Image.png

4. SVM核函数

svm核函数的理解和选择

5. SVM解决多分类问题

  • 一对多法(one-versus-rest,简称1-v-r SVMs)。训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。
  • 一对一法(one-versus-one,简称1-v-1 SVMs)。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。当对一个未知样本进行分类时,最后得票最多的类别即为该未知样本的类别。Libsvm中的多类分类就是根据这个方法实现的。
  • 层次支持向量机(H-SVMs)。层次分类法首先将所有类别分成两个子类,再将子类进一步划分成两个次级子类,如此循环,直到得到一个单独的类别为止。
    对c和d两种方法的详细说明可以参考论文《支持向量机在多类分类问题中的推广》(计算机工程与应用。2004)
  • 其他多类分类方法。除了以上几种方法外,还有有向无环图SVM(Directed Acyclic Graph SVMs,简称DAG-SVMs)和对类别进行二进制编码的纠错编码SVMs。

6. SVM优化方法-SMO

SMO(序列最小最优算法): SMO算法是支持向量机学习的一种快速方法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,直到所有变量满足KKT条件为止。这样通过启发式的方法得到原二次规划问题的最优解。因为子问题有解析解,所以每次计算子问题都很快,虽然子问题次数很多,但在总体上很是高效的。

Paste_Image.png Paste_Image.png

7. 为什么SVM对缺失数据敏感?

这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM没有处理缺失值的策略(决策树有)。而SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。

8. LR和SVM的联系与区别:

联系:

  1. LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)
  2. 两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。

区别:

  1. LR是参数模型,SVM是非参数模型。
  2. 从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
  3. SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
  4. 逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  5. logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。

9. 核函数的选择

口诀:
初级:高维用线性,不行换特征;低维试线性,不行换高斯
中级:线性试试看,不行换高斯,卡方有奇效,绝招MKL
玩家:Kernel度量相似性,自己做啊自己做

相关文章

网友评论

      本文标题:支持向量机(SVM)

      本文链接:https://www.haomeiwen.com/subject/dcnsjxtx.html