zoukankan      html  css  js  c++  java
  • SVM和LR区别和联系

    一、SVM和LR的相同点

      1、LR和SVM都是分类算法

      看到这里很多人就不会认同了,因为在很大一部分人眼里,LR是回归算法。我是非常不赞同这一点的,因为我认为判断一个算法是分类还是回归算法的唯一标准就是样本label的类型,如果label是离散的,就是分类算法,如果label是连续的,就是回归算法。很明显,LR的训练数据的label是“0或者1”,当然是分类算法。其实这样不重要啦,暂且迁就我认为他是分类算法吧,再说了,SVM也可以回归用呢。

      2、如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的

    这里要先说明一点,那就是LR也是可以用核函数的,至于为什么通常在SVM中运用核函数而不在LR中运用,后面讲到他们之间区别的时候会重点分析。总之,原始的LR和SVM都是线性分类器,这也是为什么通常没人问你决策树和LR什么区别,决策树和SVM什么区别,你说一个非线性分类器和一个线性分类器有什么区别?

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

      这个就不赘述什么是监督学习,什么是半监督学习,什么是非监督学习了。

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

      判别模型会生成一个表示P(Y|X)的判别函数(或预测模型),而生成模型先计算联合概率p(Y,X)然后通过贝叶斯公式转化为条件概率。简单来说,在计算判别模型时,不会计算联合概率,而在计算生成模型时,必须先计算联合概率。或者这样理解:生成算法尝试去找到底这个数据是怎么生成的(产生的),然后再对一个信号进行分类。基于你的生成假设,那么那个类别最有可能产生这个信号,这个信号就属于那个类别。判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。常见的判别模型有:KNN、SVM、LR,常见的生成模型有:朴素贝叶斯,隐马尔可夫模型。当然,这也是为什么很少有人问你朴素贝叶斯和LR以及朴素贝叶斯和SVM有什么区别(哈哈,废话是不是太多)。 

    二、SVM和LR的区别点

      1、本质上是其loss function不同。
      2、 支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。
      3、在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
      4、​线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响。
      5、SVM的损失函数就自带正则!!!(损失函数中的$frac{1}{2}left | w ight |^{2}$项),这就是为什么SVM是结构风险最小化算法的原因。而LR必须另外在损失函数上添加正则项,即在损失函数后面加 $frac{1}{2}left | heta  ight |^{2}$。
      6、LR可以给出每个点属于每一类的概率,而SVM是非概率的。 

    参考:

    https://blog.csdn.net/xiaocong1990/article/details/83004159

    https://blog.csdn.net/zl3090/article/details/82683889

    https://zhuanlan.zhihu.com/p/80714877 

  • 相关阅读:
    spring
    23种设计模式
    get getline
    ping
    Android四大组件
    C++数据结构
    玩转windows便签
    [JavaScript]再谈 this
    [JavaScript]面向对象编程浅析之XJB讲
    [JavaScript]MVC浅析
  • 原文地址:https://www.cnblogs.com/liuxiaochong/p/14282612.html
Copyright © 2011-2022 走看看