逻辑回归灵魂拷问之(一)—小试牛刀

小程序计算混合云

picture.image

逻辑回归灵魂拷问之(一)—小试牛刀

逻辑回归几乎是最常见的机器学习模型了,每个初学者来说都是必须学习的机器学习模型,简单的推导再加上优雅的模型,很容易被人所理解。值得注意的是,就是这么简单的模型,在各种应届实习或者工作面试中经常会被面试官提到。它是否真的如你想象的如此简单,有什么地方是你在学习的过程中丝毫没有注意到的,现在让我们一起深入地了解下它吧。

1、基础概念

本篇文章主要是讲解学习逻辑回归时不容易想到的问题,因此对于机器学习的公式推导啥的就不不仔细展开了。

假设背景 :预测值y服从伯努利分布

激活函数

表达式 :,

损失函数

其中

以上是关于逻辑的回归知识的一点小小的复习,干货在后边来了。

2、逻辑回归有什么优点和缺点

优点:

  1. 结构简单,具有很强的解释了,可以直观地看到不同特征地重要程度
  2. 训练速度快,占用的计算资源少,容易部署,无论用什么语言都可以很容易地写出来
  3. 效果好,比较依赖特征工程,特征工程做的好的话,效果会很好

缺点:

  1. 结构简单,在复杂的场景下效果不好
  2. 很难处理数据样本不均衡的情况
  3. 处理非线性数据的时候,一般都需要手动特征工程

3、逻辑回归与支持向量机有什么异同

逻辑回归与支持向量机(不加核函数)作为两个最经典的线性模型,经常会被一起考察到。

相同点:

  1. 都可以用于二分类,经过处理后也可以用于多分类
  2. 都可以加正则化,
  3. 两者都可以引入非线性化,不过方法不一样

不同点:

相比较两者的相似之处,不同之处才是更多的。

  1. LR是参数模型,SVM是非参数模型
  2. 两者的损失函数不同,LR采用的是对数损失函数,而SVM采用的是hinge Loss
  3. SVM只考虑局部,而LR考虑的是整体。SVM只考虑support vector,而LR考虑所有的样本。
  4. 优化方法不一样,LR常采用梯度下降法,SVM采用的是最小序列法(SMO)
  5. 对于非线性的表达,LR一般需要采用人工的特征工程来实现,而SVM采用引入核函数实现。
  6. SVM的预测结果是0和1,LR输出的是概率。

简评:LR和SVM都是十分优秀而简单的机器学习方法,在很多数据集上两者的表现也相差不大,但是LR更适合处理大规模的工业数据,处理速度更快,而SVM处理速度则会慢很多。

4、逻辑回归怎么进行多分类

和SVM一样,LR也不支持直接进行多分类,一般是转化为One Vs Many进行二分类,一般地步骤如下:

  1. 将类别1看作正样本,其他类型全部看作负样本,然后我们就可以得到样本标记类型为该类型的概率p1。
  2. 然后再将另外类别2看作正样本,其他类型全部看作负样本,同理得到p2。
  3. 以此循环,得到该待预测样本的标记类型分别为类别i时的概率pi,取pi中最大的那个概率对应的样本标记类型作为待预测样本类型。

5、逻辑回归特征之间高度相关会有影响吗

没有影响的,如果数据中将某个特征复制一遍,那么就相当于将权重变为原来的一半,并不会影响模型的收敛。当然对模型的收敛也肯定不会有什么促进作用

6、逻辑回归为什么么经常会对特征离散化

为什么需要离散化:

在工业界中,一般不会将连续值作为特征给逻辑回归模型,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:

  1. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易scalable(扩展)。
  2. 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。
  3. 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。
  4. 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力。
  5. 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。

也有大佬认为模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。

总结起来就是:计算简单简化模型增强模型的泛化能力

7、有哪些方法可以提高逻辑回归模型的效果

  1. 增加样本数量(约等于废话)
  2. 添加正则化,这个主要是提高模型的泛化能力
  3. 特征工程,如果说数据决定上线的话,那么特征工程是你可以逼近上限最重要的方法,你和大佬之间差了一个特征工程。
  4. 参数,这个其实聊胜于无,一般没什么提升

8、逻辑回归有哪些正则化方法,正则化为什么可以防止过拟合

一般有L1正则和L2正则两种方法 L1正则:

L2正则:

L1正则和L2正则实际上就是在损失函数后面分别加上了L1范数还有L2范数的平方。

关于正则化为什么可以防止过拟合有以下的解释:

  1. 由于我们的训练数据是有限的,很多模型都可以来拟合这有限的数据,为了使得预测数据有更好的表现,我们一般倾向于选择模型空间最小的模型。加入正则化就是将模型空间变得更小。这种解释类似于在方差和偏差中做一个tradeoff。
  2. 第二种解释就是加入正则化,就是相当于加入了先验,和贝叶斯学派有点类似, 给参数一个先验,认为参数是服从某种分布的。(为什么逻辑回归和贝叶斯还扯上了关系,我下面会有详细地介绍)。这种解释看似很有道理,但是好像又没有回答问题,并没有说法是加入先验可以提高模型泛化能力。

对于正则化还有一个问题会经常被问道,那就是L1正则化为什么会造成参数的稀疏,这个有点复杂,防止说不清楚,贴上大佬的回答。

以上就是本篇文章的全部内容,看标题就知道肯定没有结束嘛。先给大家抛出几个问题,在下一篇文章种我会详细解答,等不及的小伙伴也可以先思考或者参考网上的答案。

1:逻辑回归的优化方法是什么,以及为什么使用该方法

2:逻辑回归为什么要使用激活函数,以及为什么使用sigmoid函数,它有什么好处

3:逻辑回归的为什么采用交叉熵的损失函数

4:逻辑回归与贝叶斯之间有没有什么联系

扫码加群交流

picture.image picture.image

长按二维码关注ChallengeHub

ChallengeHub出品

picture.image

推荐阅读:

【干货分享】数据挖掘比赛中常见的评价指标解读以及应对方法——赶快拿去上分吧

基于长短期记忆神经网络(Lstm)的道琼斯指数预测

一份来自白玉京同学的大厂-强化学习-面试经验,已上岸蚂蚁金服

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动基于 DataLeap 的 DataOps 实践
随着数字化转型的推进以及业务数仓建设不断完善,大数据开发体量及复杂性逐步上升,如何保证数据稳定、正确、持续产出成为数据开发者核心诉求,也成为平台建设面临的挑战之一。本次分享主要介绍字节对于DataOps的理解 以及 DataOps在内部业务如何落地实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论