逻辑回归和SVM的区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逻辑回归和SVM的区别是啥?相关的知识,希望对你有一定的参考价值。

如果从分界面的形状出发,来看待这两种学习模型,那么结果会是下面这样的。 逻辑回归和软间隔SVM(线性核)都是线性分类器,其分界面是超平面(w0 + w1*x1 +...+ wd*xd = 0),所以两者适用于数据本质上是线性可分或近似线性可分的情形。软间隔SVM(非线性核)是非线性分类器,其分界面是曲面,适用于数据非线性可分的情形。注:作为SVM的原型——硬间隔SVM(线性核),刚开始只能解决数据线性可分的分类问题。因为引入了核函数,才使得分类器可以解决数据非线性可分的问题。同样的,作为最最简单的神经网络——逻辑回归也只能解决线性分类问题。因为进行了函数的复合,同样使得分类器可以解决数据非线性可分的问题。

参考技术A

首先,优化目标不同。LR的目标函数是logloss,SVM是最大化分类面间距。其次呢是对非线性问题的处理方式不同。LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也可以这样,还可以通过kernel。最后是处理的数据规模不同。LR一般用来处理大规模的学习问题。如十亿级别的样本,亿级别的特征。但是对计算机来说,归根结底还是优化目标, 也就是损失函数的不同造成两种模型的差异。 LR是logloss, SVM是hinge loss. 我一般将SVM的损失函数理解为最关键的点造成的损失。其他的区别并没有特别重要。

逻辑回归和SVM的区别是啥?各适用于解决啥问题

两种方法都是常见的分类算法,从目标函数来看,区别在于逻辑回归采用的是logistical loss,svm采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重.SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器.而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重.两者的根本目的都是一样的.此外,根据需要,两个方法都可以增加不同的正则化项,如l1,l2等等.所以在很多实验中,两种算法的结果是很接近的.
但是逻辑回归相对来说模型更简单,好理解,实现起来,特别是大规模线性分类时比较方便.而SVM的理解和优化相对来说复杂一些.但是SVM的理论基础更加牢固,有一套结构化风险最小化的理论基础,虽然一般使用的人不太会去关注.还有很重要的一点,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算
svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同.其区别就可以参考参数模型和非参模型的区别就好了.
logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了
参考技术A 这两种算法都是常见的分类算法,如果从目标函数来说,区别在于logistic回归采用的是log对数损失函数L(Y,P(Y|X))=-log(P(Y|X)),SVM采用的是hingle loss.损失函数的目的都是增加对分类影响较大的数据点的权重,减小对分类影响小的数据点的权重。
SVM只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而logistic回归通过非线性映射,大大减小离分类平面较远地点的权重,相对提升与分类最相关的数据点的权重。
在工业实际应用中,SVM用的不多,速度慢而且效果很难保证。
在Andrew Ng的机器学习视频中提到SVM和logistic回归的适用情形:
m是样本数,n是特征的数目
1、如果n相对于m来说很大,则使用logistic回归或者不带核函数的SVM(线性分类)
2、如果n很小,m的数量适中(n=1-1000,m=10-10000),使用带核函数的SVM算法
3、如果n很小,m很大(n=1-1000,m=50000+),增加更多的特征,然后使用logistic回归或者不带核函数的SVM。
参考技术B 神经网络的设计要用到遗传算法,遗传算法在神经网络中的应用主要反映在3个方面:网络的学习,网络的结构设计,网络的分析。
1.遗传算法在网络学习中的应用
在神经网络中,遗传算法可用于网络的学习。这时,它在两个方面起作用
(1)学习规则的优化
用遗传算法对神经网络学习规则实现自动优化,从而提高学习速率。
(2)网络权系数的优化
用遗传算法的全局优化及隐含并行性的特点提高权系数优化速度。
2.遗传算法在网络设计中的应用
用遗传算法设计一个优秀的神经网络结构,首先是要解决网络结构的编码问题;然后才能以选择、交叉、变异操作得出最优结构。编码方法主要有下列3种:
(1)直接编码法
这是把神经网络结构直接用二进制串表示,在遗传算法中,“染色体”实质上和神经网络是一种映射关系。通过对“染色体”的优化就实现了对网络的优化。
(2)参数化编码法
参数化编码采用的编码较为抽象,编码包括网络层数、每层神经元数、各层互连方式等信息。一般对进化后的优化“染色体”进行分析,然后产生网络的结构。
(3)繁衍生长法
这种方法不是在“染色体”中直接编码神经网络的结构,而是把一些简单的生长语法规则编码入“染色体”中;然后,由遗传算法对这些生长语法规则不断进行改变,最后生成适合所解的问题的神经网络。这种方法与自然界生物地生长进化相一致。
3.遗传算法在网络分析中的应用
遗传算法可用于分析神经网络。神经网络由于有分布存储等特点,一般难以从其拓扑结构直接理解其功能。遗传算法可对神经网络进行功能分析,性质分析,状态分析。
遗传算法虽然可以在多种领域都有实际应用,并且也展示了它潜力和宽广前景;但是,遗传算法还有大量的问题需要研究,目前也还有各种不足。首先,在变量多,取值范围大或无给定范围时,收敛速度下降;其次,可找到最优解附近,但无法精确确定最扰解位置;最后,遗传算法的参数选择尚未有定量方法。对遗传算法,还需要进一步研究其数学基础理论;还需要在理论上证明它与其它优化技术的优劣及原因;还需研究硬件化的遗传算法;以及遗传算法的通用编程和形式等。

以上是关于逻辑回归和SVM的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之SVM与逻辑回归的联系和区别

机器学习—逻辑回归与SVM区别

逻辑回归解决啥问题

机器学习支持向量机SVM逻辑回归LR决策树DT的直观对比和理论对比,该如何选择(面试回答)?

感知器逻辑回归和SVM的求解

怎么从通俗意义上理解逻辑回归的损失函数