LR和SVM的联系和区别

1,LR和SVM的相同点

(1)LR和SVM都是分类算法
(2)如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
         这里要先说明一点,那就是LR也是可以用核函数的,至于为什么通常在SVM中运用核函数而不在LR中运用,后面讲到他们之间区别的时候会重点分析。总之,原始的LR和SVM都是线性分类器,这也是为什么通常没人问你决策树和LR什么区别,决策树和SVM什么区别,你说一个非线性分类器和一个线性分类器有什么区别?
(3)LR和SVM都是监督学习算法
(4)LR和SVM都是判别模型
(5)LR和SVM在学术界和工业界都广为人知并且应用广泛

2,LR和SVM的不同点

(1)本质上是Loss Function不同。

  • LR的损失函数是cross entropy(交叉熵损失函数):
    J ( θ ) = − ∑ i [ y i l o g p ( x i ) + ( 1 − y i ) l o g ( 1 − p ( x i ) ) ] J(\theta)=-\sum_i \left[ y_i log p(x_i)+(1-y_i)log(1-p(x_i))\right] J(θ)=i[yilogp(xi)+(1yi)log(1p(xi))]
    其中, P ( Y = 1 ∣ x ) = p ( x ) = e x p ( θ ⋅ x + b ) 1 + e x p ( θ ⋅ x + b ) P(Y=1|x)=p(x)=\frac{exp(\theta \cdot x + b)}{1+exp(\theta \cdot x + b)} P(Y=1x)=p(x)=1+exp(θx+b)exp(θx+b) P ( Y = 0 ∣ x ) = 1 − p ( x ) = 1 1 + e x p ( θ ⋅ x + b ) P(Y=0|x) = 1-p(x)=\frac{1}{1+exp(\theta \cdot x + b)} P(Y=0x)=1p(x)=1+exp(θx+b)1
  • SVM的损失函数是最大化间隔距离:
    a r g m i n   L = 1 2 ∣ ∣ w ∣ ∣ 2 argmin\space L = \frac{1}{2}||w||^2 argmin L=21w2

    不同的Loss Function代表了不同的假设前提,也就代表了不同的分类原理。LR方法基于概率理论,假设样本类别为0或者为1的概率可以用sigmoid函数来表示,然后通过极大似然估计的方法估计出参数的值。SVM基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。所以,SVM只考虑分离超平面附近的点,而LR考虑所有点(这也是区别之一),SVM中,在支持向量之外添加减少任何点都对结果没有影响,而LR则是每一个点都会影响决策。
    同时可以得出,SVM不直接依赖于数据分布,分离超平面不受一类点影响,而LR则是受所有数据的影响(这也是区别之一),所以受数据本身分别影响。

(2)SVM不能产生概率,LR可以产生概率。
    LR本身就是基于概率的,所以它产生的结果代表了分成某一类的概率,而SVM则因为优化的目标不含有概率因素,所以其不能直接产生概率。

(3)SVM依赖于数据的测度,而LR则不受影响。
    因为SVM是基于距离的,而LR是基于概率的,所以LR是不受数据不同维度测度不同的影响,而SVM因为要最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2,所以它依赖于不同维度测度的不同,如果差别较大需要做normalization。当然,如果LR要加上正则化,也需要normalization一下。

(4)SVM的损失函数自带正则项,LR则没有。
    因为SVM本身就是最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2,所以其优化的目标函数本身就含有正则项,即,结构风险最小化,所以不需要加正则项。而LR不加正则化的时候,其优化的目标是经验风险最小化,所以为了增强模型的泛化能力,通常会在LR损失函数中加入正则化。

(5)在解决非线性问题时,SVM采用核函数机制,而LR通常不采用核函数的方法。
    分类模型的结果就是计算决策面,模型训练的过程就是决策面的计算过程。在计算决策面是,SVM只有少数几个代表支持向量的样本参与了核计算,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算量。而在LR中,每个样本点都必须参与决策面的计算过程,也就是说,若我们在LR中运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。所以,在具体应用时,LR很少运用核函数机制。

(6)SVM适用于小规模数据集,LR适合于大规模数据集。
    因为在大规模数据集中,SVM的计算复杂度受到限制,而LR因为训练简单,可以在线训练,所以经常会被大量采用。

3,参考资料

https://blog.csdn.net/haolexiao/article/details/70191667
https://www.cnblogs.com/zhizhan/p/5038747.html

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