学习总结 | 支持向量机(SVM)

目录

    • 1. SVM原理
    • 2. SVM核函数的作用
    • 3. 为什么要将求解SVM原始问题转化为对偶问题?
    • 4. SVM为什么采用间隔最大化
    • 5. SVM对异常值敏感吗?
    • 6. SVM如何处理多分类问题?
    • 7. SVM的优缺点

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)


1. SVM原理

SVM是一种二分类模型,其基本思想是在特征空间中寻找 间隔最大的分离超平面 使数据得到高效的二分类。

  • 当训练数据线性可分:通过硬间隔最大化学习一个线性分类器——线性可分支持向量机
  • 当训练数据近似线性可分:引入松弛变量,通过软间隔最大化学习一个线性分类器——线性支持向量机
  • 当训练数据线性不可分:通过核技巧及软间隔最大化,学习非线性支持向量机

2. SVM核函数的作用

当原始输入空间样本线性不可分时,SVM可以通过核函数将输入空间映射到高维空间,从而能够在高维空间通过软间隔最大化构造出最优分离超平面。核函数的优势便在于:通过核函数使数据没有真正映射到高维空间而达到了映射的效果,减少了大量的映射计算。

常用核函数

  • 线性核(linear):线性核不采用非线性分类器,认为样本是线性可分的:
    K ( x , z ) = x T ⋅ z + c K(x, z) = x^T·z+c K(x,z)=xTz+c
  • 多项式核(poly):该核函数对应一个p次多项式的分类器,这时需要调节额外的参数 c、p:
    K ( x , z ) = ( x T ⋅ z + c ) p K(x, z) = (x^T·z + c) ^ p K(x,z)=(xTz+c)p
  • 高斯核(rbf):高斯核是应用最广的核函数,是一种局部性较强的核函数,可以将样本映射到更高维甚至无穷维的空间内,无论大样本还是小样本都有比较好的性能,而且其相对于多项式核函数参数要少,因此大多数情况下在不知道用什么核函数的时候,优先使用高斯核函数。
    K ( x , z ) = e x p ( − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 ) K(x, z) = exp ({-||x-z||^2\over2σ^2}) K(x,z)=exp(2σ2xz2)

3. 为什么要将求解SVM原始问题转化为对偶问题?

  • 无论原始问题是否是凸的,对偶问题都是凸优化问题
  • 对偶问题可以给出原始问题一个下界
  • 当满足KKT条件或Slater条件时,原始问题与对偶问题是完全等价的
  • 可以自然引入核函数

4. SVM为什么采用间隔最大化

当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分类。

  • 感知机或神经网络利用最小误差分类策略求得分离超平面,此时的解可以有无穷多个
  • 线性可分支持向量机利用间隔最大化求得最优分离超平面,此时最优解是唯一的。此时的最优分离超平面所产生的的分类模型是最鲁棒的,拥有最强的泛华能力。

5. SVM对异常值敏感吗?

答案是肯定的。由于SVM的基本形态是一个硬间隔分类器,要求所有的样本都满足硬间隔约束(函数间隔>1),是一种基于距离的分类模型。因此,当某些特征存在异常值或缺失值时,处理不当变会影响模型的整体效果,导致模型泛化能力变差,特别是当存在较多异常值落在最大分类间隔中间,成为支持向量时,会大大影响模型效果。

通过引入松弛变量,即允许允许一些异常值不满足硬间隔约束条件,可以一定程度上降低SVM分类模型对异常值的敏感性。

6. SVM如何处理多分类问题?

**思路:**将多分类问题分解为一系列SVM可直接求解的二分类问题,基于这一系列SVM求解结果得出最终判别结果。具体的,SVM多分类方法主要有5种:

  • 一对其余法:构造k个二分类模型(总共有k个类别)
  • 一对一:在每两类之间训练一个分类器
  • DAG方法:有向无环图
  • 层次支持向量机:决策树支持向量机多分类方法
  • 纠错输入编码法

7. SVM的优缺点

优点:

  • SVM通过支持向量的概念,得到对数据分布的结构化描述,减低了数据对规模和数据分布的要求,在小样本训练集上能够得到比其他算法好很多的结果
  • 相比感知机和神经网络,SVM采用间隔最大化寻找最优分离超平面,具有更优秀的泛化能力

缺点:

  • 较大的的空间复杂度:SVM所占内存是样本数据量的平方
  • 基于距离的分类模型,对缺失值敏感

知识点补充:
SVM应用:目前支持向量机主要应用在模式识别领域中的文本识别、中文分类、人脸识别等,同时也应用到许多的工程技术和信息过滤等方面。

参考:

支持向量机面试知识点小结
SVM的优缺点

你可能感兴趣的:(数据分析)