一、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