线性分类模型的区别(SVM,LR)

1 SVM 和LR 的区别

1.1 模型解决问题的方式

Linear SVM 直观上是trade-off 两个量,一个是large margin :两类之间可以画多宽的gap,L1 错误惩罚:是对所有不满足上述条件的点做L1 惩罚。

给定一个数据集,一旦完成Linear SVM 的求解,所有数据点可以被归成2类: 一个是落在对应分界平面外并被正确分类的点,一类是落在gap 里被错误分类的点。

LR模型中,每一个数据点对分类平面都是有影响的,它的影响力远离它到分类平面的距离指数递减,换句话说,LR的解是受数据本身分布影响的,实际上如果数据维度很高,LR 模型都会配合参数的L1 正则。

1.2 区别:

相同点:

都是有监督的线性分类方法。

都是判别模型: 直接生成一个表示P(Y|X) 或者Y=f(x) 的判别函数。SVM 和LR ,KNN,决策树都是判别模型,朴素贝叶斯,隐马尔科夫模型是生成模型。

生成算法尝试去找这个数据是怎么生成的,然后再对一个信号进行分类,基于生成的假设,哪个类别最有可能生产这个信号,这个信号就属于那个类别。判别模型不关心数据怎么生成的,只关心信号之间的差别。 然后用差别简单对给定信息进行分类。

不同点:

  • 本质来源于loss 函数不同:

LR 的损失函数是cross entropy :
SVM的是最大化间隔距离: 
因此分类原理不同:LR 是基于概率理论,假设样本为0 或者1 的概率可以用sigmoid 函数来表达,然后通过极大似然估计的方法估计参数的值,从信息论的角度来看,就是让模型产生的分布P(Y|X) 尽可能接近训练数据的分布,相当于最小化KL 距离(因为KL 距离展开后,后一项为常数,剩下的一项是cross entropy)。

SVM 基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。只考虑分类面上的点,在支持向量外添加任何点对结果没有任何影响, Linear SVM 不依赖数据分布,分类平面不受一类点的影响,LR 受所有数据点的影响,数据不平衡要先做balance。balance 一般是只用负样本的一部分或者扩大正样本的数量。

  • SVM 不能产生概率,LR 可以产生概率: LR 本身基于概率的,它产生的结果代表了分成某一类的概率,SVM 因为优化的目标不含有概率因素,所以不能直接产生概率。
  • 正则:SVM 自带结构风险最小化,LR 是经验风险最小化: SVM 本身是优化1/2 ||w||2 最小化的,所以优化的目标函数本身就含有结构风险最小化,所以不需要加正则项。LR 优化的目标是经验风险最小化,所以需要加正则项,增强模型的泛化能力。
  • 核:SVM 会用核函数,LR 不用核函数的原因:SVM 转化为对偶问题后,分类问题只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算量。LR 则需要两两计算核函数,计算量过于庞大。
  • normalization:对数据和参数的敏感程度不同,Linear SVM 比较依赖惩罚系数和数据表达的距离测度,LR 依赖对参数做L1 正则。(1)因为它们都是线性分类器,所以实际上对低维数据的overfiting 能力都很限,LR 对高维数据表现更加稳定。因为Linear SVM 在计算margin 有多宽的时候是依赖数据表达上的距离测度的,如果这个测度不好,那么求得的Large Margin 就没有意义了,即使使用kernel trick 也无法避免,所以做SVM 前要对数据做normalization。LR 如果加上正则,也需要normalization。(2) LInear SVM 依赖惩罚系数,实验中需要做CV。
  • LR 易欠拟合,准确率低;SVM 不容易过拟合: 松弛因子+ 损失函数。SVM 的求解是拉格朗日乘子,均方误差是最小二乘。
  • 运用场景: 如果feature 数量很大,跟样本数量差不多,这时候选择LR或者Linear SVM;Feature 数量小,样本数量一般,选用SVM +高斯核; 如果feature 数量小,样本数量很多,添加feature 变成第一种情况。当数据很大大大的时候用。

 

参考:https://blog.csdn.net/haolexiao/article/details/70191667

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

https://www.jianshu.com/p/d50ced9cc80a

 

 

 

 

你可能感兴趣的:(机器学习)