逻辑回归(LR)与支持向量机(SVM)的区别和联系
1、为什么常比较这两个算法
(1)这两个算法是基础算法,常被使用。
(2)LR与SVM之间有很多相似点,因此常被放在一起比较。
2、二者相同点
第一,LR和SVM都是分类算法。
LR和SVM主要用于解决二分类问题,但是LR和SVM都可以推广到多分类的问题上,网上有说有时SVM也可以解决标签为连续变量的回归算法,但是用的较少。
第二,如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
这里要先说明一点,那就是LR也是可以用核函数的,至于为什么通常在SVM中运用核函数而不在LR中运用,后面讲到他们之间区别的时候会重点分析。总之,原始的LR和SVM都是线性分类器,这也是为什么通常没人问你决策树和LR什么区别,决策树和SVM什么区别,你说一个非线性分类器和一个线性分类器有什么区别?
第三,LR和SVM都是监督学习算法。
半监督学习:在标记样本中加入无标记样本,增强有监督分类的效果;同样的,我们希望在无标记样本中加入有标记样本,增强无监督聚类的效果。半监督学习侧重于在有监督的分类算法中加入无标记样本来实现半监督分类
第四,LR和SVM都是判别模型。
判别模型会生成一个表示P(Y|X)的判别函数(或预测模型),而生成模型先计算联合概率p(Y,X)然后通过贝叶斯公式转化为条件概率。简单来说,在计算判别模型时,不会计算联合概率,而在计算生成模型时,必须先计算联合概率。或者这样理解:生成算法尝试去找到底这个数据是怎么生成的(产生的),然后再对一个信号进行分类。基于你的生成假设,那么那个类别最有可能产生这个信号,这个信号就属于那个类别。判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。常见的判别模型有:KNN、SVM、LR,常见的生成模型有:朴素贝叶斯,隐马尔可夫模型。当然,这也是为什么很少有人问你朴素贝叶斯和LR以及朴素贝叶斯和SVM有什么区别。
第五,LR和SVM在学术界和工业界都广为人知并且应用广泛。
3、二者不同点
第一,损失函数是二者最为本质的区别。
假设样本独立且同分布,最大对数似然估计进行变形,得到LR的损失函数(cross entropy loss):
min
−
1
m
∑
i
=
1
m
(
y
i
log
h
θ
(
x
i
)
+
(
1
−
y
i
)
log
(
1
−
h
θ
(
x
i
)
)
)
\min -\frac{1}{m} \sum_{i=1}^{m}\left(y_{i} \log {h_{\theta}\left(x_{i}\right)}+\left(1-y_{i}\right) \log {\left(1-h_{\theta}\left(x_{i}\right)\right)}\right)
min−m1i=1∑m(yiloghθ(xi)+(1−yi)log(1−hθ(xi)))
损失函数:表征模型预测值与真实值的不一致程度。记为函数
L
(
Y
,
f
(
X
)
)
L(Y,f(X))
L(Y,f(X))
结构风险函数 = 经验风险项 + 正则项 其中损失函数为经验风险项的重要组成部分
SVM损失函数(hinge损失)
ℓ
hinge
(
z
)
=
max
(
0
,
1
−
z
)
\ell_{\text {hinge}}(z)=\max (0,1-z)
ℓhinge(z)=max(0,1−z)
min
x
,
b
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
max
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
\min _{x, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m} \max \left(0,1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)\right)
x,bmin21∥w∥2+Ci=1∑mmax(0,1−yi(wTxi+b))
逻辑回归基于概率理论,假设样本为正样本的概率可以用sigmoid函数(S型函数)来表示,然后通过极大似然估计的方法估计出参数的值。
支持向量机基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。
第二,两个模型对数据和参数的敏感程度不同 。
SVM考虑分类边界线附近的样本(决定分类超平面的样本)。在支持向量外添加或减少任何样本点对分类决策面没有任何影响;
LR受所有数据点的影响。直接依赖数据分布,每个样本点都会影响决策面的结果。如果训练数据不同类别严重不平衡,则一般需要先对数据做平衡处理,让不同类别的样本尽量平衡。
第三, SVM 基于距离分类,LR 基于概率分类。
SVM依赖数据表达的距离测度,所以需要对数据先做 normalization;LR不受其影响。
第四, 在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
SVM算法里,只有少数几个代表支持向量的样本参与分类决策计算,也就是只有少数几个样本需要参与核函数的计算。
LR算法里,每个样本点都必须参与分类决策的计算过程,也就是说,假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。尤其是数据量很大时,我们无法承受。所以,在具体应用时,LR很少运用核函数机制。
第五,在小规模数据集上,Linear SVM要略好于LR,但差别也不是特别大,而且Linear SVM的计算复杂度受数据量限制,对海量数据LR使用更加广泛。
一个基于概率,一个基于距离!
第六, SVM的损失函数就自带正则(L2正则),而 LR 必须另外在损失函数之外添加正则项。
以前一直不理解为什么SVM叫做结构风险最小化算法,所谓结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,从而达到真实误差的最小化。未达到结构风险最小化的目的,最常用的方法就是添加正则项,后面的博客我会具体分析各种正则因子的不同,这里就不扯远了。但是,你发现没,SVM的目标函数里居然自带正则项!!!
本文探讨了逻辑回归(LR)与支持向量机(SVM)的常见比较原因,两者在分类、线性性、监督学习、判别模型方面的相同点,以及它们在损失函数、数据敏感性、非线性处理、计算复杂度和正则化等核心区别。LR基于概率,SVM基于距离,SVM损失函数自带正则,适合小规模数据,而LR在大规模数据上更实用。
1068

被折叠的 条评论
为什么被折叠?



