【机器学习】Logistic回归和SVM的异同

这个问题在最近面试的时候被问了几次,让谈一下Logistic回归(以下简称LR)和SVM的异同。由于之前没有对比分析过,而且不知道从哪个角度去分析,一时语塞,只能不知为不知。

  现在对这二者做一个对比分析,理清一下思路。

  

  相同点

  1、LR和SVM都是分类算法(曾经我认为这个点简直就是废话,了解机器学习的人都知道。然而,虽然是废话,也要说出来,毕竟确实是一个相同点。)

  2、如果不考虑使用核函数,LR和SVM都是线性分类模型,也就是说它们的分类决策面是线性的。

    其实LR也能使用核函数,但我们通常不会在LR中使用核函数,只会在SVM中使用。原因下面会提及。

  3、LR和SVM都是监督学习方法。

    监督学习方法、半监督学习方法和无监督学习方法的概念这里不再赘述。

  4、LR和SVM都是判别模型。

  判别模型和生成模型的概念这里也不再赘述。典型的判别模型包括K近邻法感知机决策树Logistic回归最大熵SVMboosting条件随机等。典型的生成模型包括朴素贝叶斯法隐马尔可夫模型高斯混合模型

  5、LR和SVM在学术界和工业界都广为人知并且应用广泛。(感觉这个点也比较像废话)

  

  不同点

  1、loss function不一样

  LR的loss function是

        

  SVM的loss function是

        

 

LR基于概率理论,通过极大似然估计方法估计出参数的值,然后计算分类概率,取概率较大的作为分类结果。SVM基于几何间隔最大化,把最大几何间隔面作为最优分类面。

  2、SVM只考虑分类面附近的局部的点,即支持向量,LR则考虑所有的点,与分类面距离较远的点对结果也起作用,虽然作用较小。

   SVM中的分类面是由支持向量控制的,非支持向量对结果不会产生任何影响。LR中的分类面则是由全部样本共同决定。线性SVM不直接依赖于数据分布,分类平面不受一类点影响;LR则受所有数据点的影响,如果数据不同类别strongly unbalance,一般需要先对数据做balancing。

  3、在解决非线性分类问题时,SVM采用核函数,而LR通常不采用核函数。

  分类模型的结果就是计算决策面,模型训练的过程就是决策面的计算过程。在计算决策面时,SVM算法中只有支持向量参与了核计算,即kernel machine的解的系数是稀疏的。在LR算法里,如果采用核函数,则每一个样本点都会参与核计算,这会带来很高的计算复杂度,所以,在具体应用中,LR很少采用核函数。

  4、SVM不具有伸缩不变性,LR则具有伸缩不变性。

  SVM模型在各个维度进行不均匀伸缩后,最优解与原来不等价,对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据影响。LR模型在各个维度进行不均匀伸缩后,最优解与原来等价,对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

  5、SVM损失函数自带正则项,因此,SVM是结构风险最小化算法。而LR需要额外在损失函数上加正则项。

  所谓结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,从而达到真实误差的最小化。未达到结构风险最小化的目的,最常用的方法就是添加正则项。

 

参考博客

http://www.cnblogs.com/bentuwuying/p/6616761.html 

https://www.cnblogs.com/Peyton-Li/p/7620081.html

发布了397 篇原创文章 · 获赞 541 · 访问量 255万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览