SVM与LR的异同

本篇文章主要是对几篇blog以及知乎回答的总结

[TOC]

相同点


1. LR和SVM都是有监督分类算法

2. 不考虑核函数,LR和SVM都是线性分类算法

他们的分类决策面都是线性的。

3. LR和SVM都是判别模型

不同点


1. LR和SVM本质不同来自于$Loss Function$

  • LR是$logistical loss$:

    SVM是$hinge loss$:

  • 不同的$loss function$代表了不同的假设前提,也就代表了不同的分类原理

    LR方法基于概率理论,假设样本满足$logistic$分布,然后通过极大似然估计的方法估计出参数的值

    SVM基于几何间隔最大化原理,认为存在的最大几何间隔的分类面为最优分类面

  • 所以,SVM只考虑分类面上的点(支持向量),而LR考虑所有点,在SVM中,在支持向量之外添加或者减少任何点都对结果没有影响,而LR每个点都会影响决策。

  • $Linear SVM$不直接依赖于数据分布,分类平面不受一类点影响

    $LR$则是受所有点影响,所以受数据本身分布影响,如果数据不同类别$strongly unbalance$,一般需要先对数据$balancing$

  • 两种$loss function$目的都是增加对分类影响比较大的点的数据点权重,减少与分类关系比较小的数据点的权重。

    $SVM$的处理方法是只考虑$support vectors$,也就是和分类最相关的少数点,去学习分类器。

    $LR$则通过非线性映射,大大减小了离分类平面较远的点的权重,提高了与分类最相关的数据点的权重。($sigmoid$函数中间比较陡峭?)

2. LR可以产生概率,SVM不能产生概率

  • LR模型的原理就是基于伯努利分布的假设推导出来的(见LR文章),所以它产生的结果代表了分成某一类的概率

    SVM不是基于概率的假设,无法输出概率

3. SVM依赖数据的测度,而LR则不受影响

  • SVM是基于距离的,所以受测度影响;LR是基于概率的,所以不受测度影响
  • SVM需要最小化${1\over 2}||w||^2$,所以其依赖于不同维度的测度不同,如果差别较大需要做$normalization$,当然如果LR要加上正则化时,也是需要$normalization$
  • 如果用到梯度下降算法,则一般都需要$feature scaling$,如果不归一化,梯度下降会很慢

4. SVM自带结构风险最小化,LR不带正则项则是经验风险最小化

  • 因为SVM本身就是优化${1\over 2}||w||^2$最小化的,所以其优化的目标函数本身就含有结构风险最小化,所以不需要加正则项
  • LR不加正则化的时候,优化目标就是经验风险最小化,所以最后需要加入正则项,增强模型泛化能力

5. SVM会用核函数而LR一般不用核函数的原因

  • SVM转化为对偶问题后,分类只需要计算与少数个支持向量的距离(原因从KKT条件最后一条理解,非支持向量不提供约束),这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算量
  • LR则是每个点都需要两两计算核函数,计算量庞大

6. LR和SVM在实际应用中的区别

  • 根据经验来看,对于小规模数据集,SVM的效果要好于LR,但是在大数据中,SVM计算复杂度收到限制,而LR因为训练简单,可以在线训练,所以经常被大量采用。
  • $Andrew NG$在课里讲过:
    1. 如果$Feature$的数量很大,这时候选用$LR$或者是$Linear Kernel$的$SVM$
    2. 如果$Feature$的数量较小,数据量中等,用$Gaussian Kernel$的$SVM$
    3. 如果$Feature$的数量较小,数据量比较大,构造特征,然后同第一种

参考链接:

0%