LR与SVM比较
- 相同点
如果不考虑核函数,都是线性分类模型,模型求解的是一个超平面。
都是判别模型。
都是监督学习模型。
在学术界和工业届都应用广泛。
2.不同点
(1) 他们本质的不同是loss function的不同
LR采用logical loss
SVM采用hinge loss
LR:$$J(\theta )=-\frac{1}{2m}\sum_{i=1}^{m} [y{(i)}log(h_{\theta}(x))+(1-y{(i)})log()(1-h_{\theta}(x))]$$
SVM:$$L(w,b,\alpha)=\frac{1}{2}\left | w \right |{2}-\sum_{i=1}\alpha_{i}(y_{i}(w^{T}x_{i}+b)-1)$$
(3) 因为SVM分类平面仅依赖于支持向量,一类点的分布改变对SVM分类无影响,而LR数据点分布对分类平面有影响,并且影响随着距离的增加呈指数递减。
因此,
在异常点很多的情况下,SVM容易受到异常点影响,而LR由于和所有点的分布有关比较稳定。
在样本类别分布不均衡的情况下,LR需要先对数据进行balancing,SVM不需要
在非线性情况下,SVM采用核函数方法,LR引入核函数计算复杂度很高,通常不采用。
(4) LR的本质是找到一个分布函数去拟合,SVM是找到最大软间隔,需要能够计算支持向量到超平面的距离。
因此SVM需要进行归一化,LR不受影响。
由于高维情况下LR比SVM稳定。因为高纬距离难以度量。LR在高纬下通常用L1正则选择参数。
LR可以给出每一点的概率,而SVM是非概率的。
(5) SVM计算复杂度受限于数据量,对于海量数据更适合用LR。
(6) 正则
SVM损失函数自带L2正则,因此SVM是结构风险最小化,在训练误差和模型复杂度之间寻找平衡,防止过拟合。
LR需要添加L1或者L2正则