LR和SVM的联系与区别
LR和SVM可能是面试中问到的非树模型中很常见的一个问题了,主要的是推公式以及说明求解过程如SVM。笔者在面美团的时候就要求推了LR和SVM,过程不难,平时每天推一遍,你就会发现面试的时候最让人觉得愉快的就说推公式了,然后推完之后就是问一下与之有关的乱七八糟的问题了。
联系:
1、LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)
2、两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。
3、LR和SVM都可以用来做非线性分类,只要加核函数就好。
4、LR和SVM都是线性模型,当然这里我们不要考虑核函数。
5、都属于判别模型。
区别:
1、LR是参数模型,SVM是非参数模型。
2、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
3、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
4、SVM不直接依赖数据分布,而LR则依赖,因为SVM只与支持向量那几个点有关系,而LR和所有点都有关系。
5、SVM依赖penalty系数,实验中需要做CV。
6、SVM本身是结构风险最小化模型,而LR是经验风险最小化模型。
另外怎么选模型:
在Andrew NG的课里讲到过:
1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
还有的解释的比较详细的,可以看引用,差不多能回答出来几点就好了,具体的因为模型不一样,能说出来一大推其他的不同点。