Logistic模型和SVM很像,现在大概说一下两者的区别
1、 寻找最优超平面的方法不同
形象点说,Logistic模型找的那个超平面,是尽量让所有点都远离它,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些“支持向量”的样本——所以叫“支持向量机”。
2、SVM可以处理非线性的情况
比Logistic更强大的是,SVM还可以处理非线性的情况。
3、Logistic regression 和 SVM本质不同在于loss function的不同,Logistic regression的损失函数是 cross entropy loss, SVM是hinge loss,Adaboost的损失函数是 exponential loss 。常见的回归模型通常用均方误差 loss。
两种方法都是常见的分类算法,从目标函数来看,区别在于逻辑回归采用的是logistical loss,svm采用的是hinge loss.
这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重.SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器.
而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重.两者的根本目的都是一样的.
此外,根据需要,两个方法都可以增加不同的正则化项,如l1,l2等等.所以在很多实验中,两种算法的结果是很接近的.
但是逻辑回归相对来说模型更简单,好理解,实现起来,特别是大规模线性分类时比较方便.而SVM的理解和优化相对来说复杂一些.但是SVM的理论基础更加牢固,有一套结构化风险最小化的理论基础,虽然一般使用的人不太会去关注.还有很重要的一点,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同.
其区别就可以参考参数模型和非参模型的区别就好了.logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。
Andrew Ng老师在Coursera上《Machine Learning》from stanford的结论:
n: feature 数目m: sample 数目
http://blog.csdn.net/zhikangfu/article/details/50885078
http://blog.csdn.net/ybdesire/article/details/54143481
http://www.jianshu.com/p/1aa67a321e33