Logistic回归和SVM的异同

  这个问题在最近面试的时候被问了几次,让谈一下Logistic回归(以下简称LR)和SVM的异同。由于之前没有对比分析过,而且不知道从哪个角度去分析,一时语塞,只能不知为不知。

  现在对这二者做一个对比分析,理清一下思路。

  

  相同点

  1、LR和SVM都是分类算法(曾经我认为这个点简直就是废话,了解机器学习的人都知道。然而,虽然是废话,也要说出来,毕竟确实是一个相同点。)

  2、如果不考虑使用核函数,LR和SVM都是线性分类模型,也就是说它们的分类决策面是线性的。

    其实LR也能使用核函数,但我们通常不会在LR中使用核函数,只会在SVM中使用。原因下面会提及。

  3、LR和SVM都是监督学习方法。

    监督学习方法、半监督学习方法和无监督学习方法的概念这里不再赘述。

  4、LR和SVM都是判别模型。

  判别模型和生成模型的概念这里也不再赘述。典型的判别模型包括K近邻法感知机决策树Logistic回归最大熵SVMboosting条件随机等。典型的生成模型包括朴素贝叶斯法隐马尔可夫模型高斯混合模型

  5、LR和SVM在学术界和工业界都广为人知并且应用广泛。(感觉这个点也比较像废话)

  

  不同点

  1、loss function不一样

  LR的loss function是

        

  SVM的loss function是

        

 

LR基于概率理论,通过极大似然估计方法估计出参数的值,然后计算分类概率,取概率较大的作为分类结果。SVM基于几何间隔最大化,把最大几何间隔面作为最优分类面。

  2、SVM只考虑分类面附近的局部的点,即支持向量,LR则考虑所有的点,与分类面距离较远的点对结果也起作用,虽然作用较小。

   SVM中的分类面是由支持向量控制的,非支持向量对结果不会产生任何影响。LR中的分类面则是由全部样本共同决定。线性SVM不直接依赖于数据分布,分类平面不受一类点影响;LR则受所有数据点的影响,如果数据不同类别strongly unbalance,一般需要先对数据做balancing。

  3、在解决非线性分类问题时,SVM采用核函数,而LR通常不采用核函数。

  分类模型的结果就是计算决策面,模型训练的过程就是决策面的计算过程。在计算决策面时,SVM算法中只有支持向量参与了核计算,即kernel machine的解的系数是稀疏的。在LR算法里,如果采用核函数,则每一个样本点都会参与核计算,这会带来很高的计算复杂度,所以,在具体应用中,LR很少采用核函数。

  4、SVM不具有伸缩不变性,LR则具有伸缩不变性。

  SVM模型在各个维度进行不均匀伸缩后,最优解与原来不等价,对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据影响。LR模型在各个维度进行不均匀伸缩后,最优解与原来等价,对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

  5、SVM损失函数自带正则项,因此,SVM是结构风险最小化算法。而LR需要额外在损失函数上加正则项。

  所谓结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,从而达到真实误差的最小化。未达到结构风险最小化的目的,最常用的方法就是添加正则项。

 

参考博客

http://www.cnblogs.com/bentuwuying/p/6616761.html

转载于:https://www.cnblogs.com/Peyton-Li/p/7620081.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转载] python学习笔记2--操作符,数据类型和内置功能

参考链接: Python中的Inplace运算符| 1(iadd(),isub(),iconcat()…) 什么是操作符? 简单的回答可以使用表达式4 5等于9,在这里4和5被称为操作数,被称为操符。 Python语言支持操作者有以下几种类型。 算…

scala bitset_Scala中的BitSet

scala bitsetScala BitSet (Scala BitSet) Set is a collection of unique elements. 集合是唯一元素的集合。 Bitset is a set of positive integers represented as a 64-bit word. 位集是一组表示为64位字的正整数。 Syntax: 句法: var bitset : Bitset Bits…

构建安全网络 比格云全系云产品30天内5折购

一年之计在于春,每年的三、四月,都是个人创业最佳的起步阶段,也是企业采购最火热的时期。为了降低用户的上云成本,让大家能无门槛享受到优质高性能的云服务,比格云从3月16日起,将上线“充值30天内&#xff…

python中 numpy_Python中的Numpy

python中 numpyPython中的Numpy是什么? (What is Numpy in Python?) Numpy is an array processing package which provides high-performance multidimensional array object and utilities to work with arrays. It is a basic package for scientific computati…

[转载] python之路《第二篇》Python基本数据类型

参考链接: Python中的Inplace运算符| 1(iadd(),isub(),iconcat()…) 运算符 1、算数运算: 2、比较运算: 3、赋值运算: 4、逻辑运算: 5、成员运算: 6、三元运算 三元运算&…

数据结构 基础知识

一。逻辑结构: 是指数据对象中数据 素之间的相互关系。 其实这也是我 今后最需要关注的问题 逻辑结构分为以 四种1. 集合结构 2.线性结构 3.数形结构 4,图形结构 二。物理结构: 1,顺序存储结,2 2. 链式存储结构 一,时间复杂…

ruby 变量类中范围_Ruby中的类

ruby 变量类中范围Ruby类 (Ruby Classes) In the actual world, we have many objects which belong to the same category. For instance, I am working on my laptop and this laptop is one of those laptops which exist around the globe. So, this laptop is an object o…

以云计算的名义 驻云科技牵手阿里云

本文讲的是以云计算的名义 驻云科技牵手阿里云一次三个公司的牵手 可能会改变无数企业的命运 2017年4月17日,对于很多人来说可能只是个平常的工作日,但是对于国内无数的企业来说却可能是个会改变企业命运的日。驻云科技联合国内云服务提供商阿里云及国外…

[转载] python学习笔记

参考链接: Python | a b并不总是a a b 官网http://www.python.org/ 官网library http://docs.python.org/library/ PyPI https://pypi.python.org/pypi 中文手册,适合快速入门 http://download.csdn.net/detail/xiarendeniao/4236870 py…

标志寄存器_访问标志寄存器,并与寄存器B |交换标志寄存器F的内容 8085微处理器...

标志寄存器Problem statement: 问题陈述: Write an assembly language program in 8085 microprocessor to access Flag register and exchange the content of flag register F with register B. 在8085微处理器中编写汇编语言程序以访问标志寄存器,并…

浏览器端已支持 ES6 规范(包括 export import)

当然,是几个比较优秀的浏览器,既然是优秀的浏览器,大家肯定知道是那几款啦,我就不列举了,我用的是 chrome。 对 script 声明 type 为 module 后就可以享受 es6 规范所带来的模块快感了。 基础语法既然是全支持&#xf…

[转载] Python学习:Python成员运算符和身份运算符

参考链接: Python中和is运算符之间的区别 Python成员运算符 除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。 运算符 描述 实例 in 如果在指定的序列中找…

量词逻辑量词里面的v表示?_代理知识表示中的量词简介(基于人工智能)

量词逻辑量词里面的v表示?As we know that in an AI-based agent, the knowledge is represented through two types of logic: The propositional logic and the predicate logic. In the propositional logic, we have declarative sentences, and in the predica…

[转载] Python 机器学习经典实例

参考链接: Python中的逻辑门 内容介绍 在如今这个处处以数据驱动的世界中,机器学习正变得越来越大众化。它已经被广泛地应用于不同领域,如搜索引擎、机器人、无人驾驶汽车等。本书首先通过实用的案例介绍机器学习的基础知识,然后…

哈希表的最差复杂度是n2_给定数组A []和数字X,请检查A []中是否有对X | 使用哈希O(n)时间复杂度| 套装1...

哈希表的最差复杂度是n2Prerequisite: 先决条件: Hashing data structure 散列数据结构 Problem statement: 问题陈述: Given an array and a sum X, fins any pair which sums to X. Expected time complexity O(n). 给定一个数组和一个和X &#xff…

一文读懂深度学习框架下的目标检测(附数据集)

从简单的图像分类到3D位置估算,在机器视觉领域里从来都不乏有趣的问题。其中我们最感兴趣的问题之一就是目标检测。 如同其他的机器视觉问题一样,目标检测目前为止还没有公认最好的解决方法。在了解目标检测之前,让我们先快速地了解一下这个领…

[转载] Python-Strings

参考链接: Python成员资格和身份运算符 | in, not in, is, is not Strings 介绍 String是Python中最常用的类型。仅仅用引号括起字符就可以创建string变量。字符串使用单引号或双引号对Python来说是一样的。 var1 Hello World! var2 "Pyth…

aes-128算法加密_加密算法问题-人工智能中的一种约束满意问题

aes-128算法加密The Crypt-Arithmetic problem in Artificial Intelligence is a type of encryption problem in which the written message in an alphabetical form which is easily readable and understandable is converted into a numeric form which is neither easily…

读书笔记《集体智慧编程》Chapter 2 : Make Recommendations

本章概要本章主要介绍了两种协同过滤(Collaborative Filtering)算法,用于个性化推荐:基于用户的协同过滤(User-Based Collaborative Filtering,又称 K-Nearest Neighbor Collaborative Filtering&#xff0…

[转载] python中的for循环对象和循环退出

参考链接: Python中循环 流程控制-if条件 判断条件,1位true,0是flesh,成立时true,不成立flesh,not取反 if 1; print hello python print true not取反,匹配取反,表示取非1…