zoukankan      html  css  js  c++  java
  • 建模时选择SVM还是LR?

    这两个算法都可以解决线性分类问题和非线性分类问题(都使用kernel trick)。
    如果是非线性分类,那么我们就首选SVM。

    1. SVM不是概率输出,Logistic Regression是概率输出。
      也就是说,当一个新样本来了,SVM只会告诉你它的分类,而Logistic Regression会告诉你它属于某类的概率!
      什么意思呢?当你想要知道某个样本属于一个类的概率时,SVM就不适用了。此时,应该使用Logistic Regression。

    那么问题来了,点到SVM分类面的距离,是否可以转化为“概率输出”呢,即离分类面越远,其属于该类的概率越大,反之越小呢?《PRML》里确实提过类似的做法,也有一些其他的办法让SVM输出概率,但作者说这些方法都不太实用。

    1. 异常点的鲁棒性问题
      当训练样本中存在异常点时,由于Logistic Regression的lost function中有每一个点的贡献,所以某种程度上“削弱了”异常点的贡献。而SVM只需要考虑支持向量,此时支持向量本来就不是很多的情况下,几个异常点就很有可能极大影响SVM的表现。

    2. 目标函数 lost function
      Logistic Regression使用entropy loss,极大化似然函数。
      而SVM使用hinge loss, 最大化间隔。两个loss差别不是很大,所以算是一个相同点了。

    3. 实际问题:
      实际问题中,如果数据量非常大,特征维度很高,使用SVM搞不定时,还是用Logistic Regression吧,速度更快一些。

    参考:https://www.jianshu.com/p/1aa67a321e33

  • 相关阅读:
    LVS DR实验!
    Memcached 与 Redis 区别
    LVS笔试题!
    并发编程拓展知识
    并发编程之协程
    并发编程之线程
    并发编程之多道技术
    粘包问题与socketserver实现并发
    套接字通信
    git的使用
  • 原文地址:https://www.cnblogs.com/jiaxinwei/p/13901263.html
Copyright © 2011-2022 走看看