逻辑回归别看简单,但是里面在面试里面考察的内容还是很多的。尤其在推荐算法领域,GBDT+LR就是在前几年还相当流行的一个推推荐算法手段。

在这篇文章之前,已经写过一些关于logistics Regression的补充了。

问题1:逻辑回归相比于线性回归,有何异同

首先,逻辑回归是处理分类问题,线性回归是处理回归问题。这是两者最最本质的区别。

逻辑回归是给定自变量和超参数后,得到因变量的期望,基于期望来处理预测分类的文同。

线性回归实际上是求解 ,来拟合我们的真实关系

然后最重要的来了,先给出结论,逻辑回归可以看作广义线性模型在因变量Y服从二项分布(伯努利分布)的一个特殊情况,而使用最小二乘法求解线性回归的时候,我们认为因变量Y是服从正态分布的。

下面来分别解释逻辑回归为什么可以看作广义线性模型在因变量Y服从二项分布(伯努利分布)的一个特殊情况,而在使用最小二乘法求解线性回归的时候,我们认为因变量Y是服从正态分布的:

        逻辑回归:

首先,逻辑回归就是在线性回归的基础上加伤了一个Sigmod函数进行非线性因社会的,本质上来说,两者都是一个广义的线型模型。作为什么这么说呢?

我们先把sigmod函数给写出来:

他有以下几个特点:

1. 输出的范围都在0-1之间

2. 1/2处的倒数最大

3. sigmod的导数 = sigmod(x)(1-sigmod(x))

4. 在sigmod的两端会有硬饱和出现,会出现提督消失的情况

然后他的损失函数是一个交叉熵损失函数:

关键是这个函数是这么来的:

我们首先看一个样本的情况: 如果等于类别1,P=y,如果等于类别0,P=(1-y)

于是我们可以将这个判断式子写成一条式子:

我们是想这个式子越大越好的,因为预测概率  越大, 就越接近1。而如果等于0, 我们预测概率是1-y_pred, 我们依然希望这个越大越好。

然后我们推广到多个样本:

然后用极大似然的思想,还是求max,我们对这个多样本的情况进行取对数和取反,这样我们就得到了上述的loss形式了。

上述等式的推到,都是基于样本服从伯努利分布得到的。然后损失函数就是伯努利分布的极大似然估计。

因为面试时可能会考到,我们就手推一下上述这个loss的求梯度过程:

了解完sigmod的基本面后,我们开始深挖sigmod了,究竟sigmod是怎么来的?

我们先给出答案:假设我们要解决的是一个二分类问题,所以这个分类的概率是服从指数族分布里面的伯努利分布,然后在加上广义线性模型的条件,我们可以求得sigmod出来,其中所谓的对数线性模型,是指数族分布里面的一个小东西,这个小东西结合上广义线性模型的第三假设而得出的。

        首先,什么是指数族分布?

        如果概率分布满足以下的式子,我们说这个这个概率满足指数族分布:

其中指数族分布里面有很多成员:beta分布,gamma分布,正态分布,以及伯努利分布。

我们的现实问题就是一个二分类问题,所以满足概率分布服从伯努利分布:

我们将这些东西都拆分以下:

所以,这个伯努利的分布是满足指数分布的通式的,也就是我们现实的二分类问题是一个指数族分布,然后我们再来看广义模型

为了推导出广义模型,我们要假设三个条件:

于是我们把伯努利分布给掏出来:

有同学可能这里理解不了这个期望和概率的相等的,这个是某一件事的发生概率,然后咱们的期望是在X发生的情况下,Y发生的期望,也就是 

然后根据咋们伯努利服从指数族分布的:

然后咱们的 应用广义模型的第三条假设,就得出sigmod函数了:

      这样就可以解释逻辑回归为什么可以看作广义线性模型在因变量Y服从二项分布(伯努利分布)的一个特殊情况了。

下面就解释在使用最小二乘法求解线性回归的时候,我们认为因变量Y是服从正态分布的:

在线性回归模型里面,有一个非常重要的假设,就是假设误差项(残差)是服从标准的正态分布的。

其中当误差项(残差)符合正态分布时,残差就是预测值-实际值,那我现在残差已经是正态分布了,因变量(预测值)也会符合正态分布的(因为实际值是一个实数)

对于每一个样本,线型回归都可以写成:

这个b就是误差项,我们假设误差项就是服从正态分布的。

然后把 用线性回归的表达式去替换出来:

这个是误差项出现的概率鸭,我们肯定要让误差项出现概率最小呀,但是因为e的指数是负的,所以我们要让这个指数是最大的。我们先假设有N个样本,于是这N个样本的误差的出现概率相乘起来:

因为里面前面一项都是常数,我们只要后面那一项,也就是e指数那一块,然后我们要让这一块最小,于是我们给他加上log,分母也不要了,也就是求的最大了

也就是

然后去掉负号,就变成求最小了:也就是我们课本上提到了最小二乘法了:

至此:我们证明了使用最小二乘法求解线性回归的时候,我们认为因变量Y是服从正态分布的

说了一大堆不同的地方,我们现在来说相同的地方:

就是他们求解最佳参数的时候,都是可以使用提督下降的方法去求解的。

问题2:当使用逻辑回归处理度标签的分类问题时,有那些常见做法?分别应用于哪些场景,他们之间又有什么联系?

        这个问题看得我头都大了,真的不知道该从什么角度去回答。最后一问就是问逻辑回归和多分类softmax的关系。

这之前做了笔记,现在刚好也整理上来了:

我们先看softmax的公式:

但是因为这个函数是非凸的,所以在有局部极小值处,而且极小值处还是一个平坦的区域,所以我们在这个范围内怎么取值,他输出的都是一样的。

你看我们减去了一个  他输出还是一样的。所以我们来看J=2的时候:

我们认为他也是冗余的,然后令 ,就有:

你看,这不就对上了咋们用sigmod去做激活函数了嘛,最后一个矩阵她们两个元素相加是等于1的

这就是用softmax当类别只有2的时候,softmax是怎么退化成sigmod的!

        然后如果真的非得用二分类去处理多分类。就可以这么训练:属于第i个类别和不属于第i个类别,然后一直分类下去,就像一个二叉树一样。

下面是softmax的求导:

百面机器学习 之 逻辑回归相关推荐

  1. 机器学习实战-逻辑回归-19

    机器学习实战-逻辑回归-用户流失预测 import numpy as np train_data = np.genfromtxt('Churn-Modelling.csv',delimiter=',' ...

  2. 机器学习_2逻辑回归

    机器学习_逻辑回归 分类问题 二分类--Sigmoid函数 Sigmoid函数代码实现 逻辑回归 数学原理 求解方式 正则化 逻辑回归数据集应用样例--代码实现 样例1:有清晰的线性决策边界 决策边界 ...

  3. 机器学习:逻辑回归(logistics regression)

    title: 机器学习:逻辑回归(logistics regression) date: 2019-11-30 20:55:06 mathjax: true categories: 机器学习 tags ...

  4. 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例

    传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 文章目录 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例 1导入基本库 2读取数据并且变换类型 3输出数据 4可视化数据 ...

  5. 吴恩达机器学习之逻辑回归(二分类)

    吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...

  6. 【机器学习】逻辑回归原理介绍

    [机器学习]逻辑回归原理介绍 [机器学习]逻辑回归python实现 [机器学习]逻辑回归sklearn实现 Logistic 回归模型是目前广泛使用的学习算法之一,通常用来解决二分类问题,虽然名字中有 ...

  7. 简单粗暴理解与实现机器学习之逻辑回归:逻辑回归介绍、应用场景、原理、损失以及优化...

    作者 | 汪雯琦 责编 | Carol 来源 | CSDN 博客 出品 | AI科技大本营(ID:rgznai100) 学习目标 知道逻辑回归的损失函数 知道逻辑回归的优化方法 知道sigmoid函数 ...

  8. 【机器学习】逻辑回归(Logistic Regression)

    注:最近开始学习<人工智能>选修课,老师提纲挈领的介绍了一番,听完课只了解了个大概,剩下的细节只能自己继续摸索. 从本质上讲:机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害 ...

  9. 【机器学习】逻辑回归优化技巧总结(全)

    逻辑回归由于其简单高效.易于解释,是工业应用最为广泛的模型之一,比如用于金融风控领域的评分卡.互联网的推荐系统.上文总结了逻辑回归的原理及其实现[全面解析并实现逻辑回归(Python)]. 本文从实际 ...

最新文章

  1. 小牛生产小牛的问题解决集粹
  2. SQL Server 优化---为什么索引视图(物化视图)需要with(noexpand)强制查询提示
  3. centos7扩展根分区
  4. linux c 编程 pdf_C/C++编程笔记:Linux 日志文件系统未解之谜,你知道吗?
  5. STS+Git 项目操作相关
  6. Java当中包装类的理解和一些常用方法的分享(学习后分享)
  7. 解析xml_Mybatis中mapper的xml解析详解
  8. 安卓第一次搭建C/S架构
  9. windows10+MongDb4.0.4下载和安装
  10. 1067 Sort with Swap(0, i) (25 分) 好,容易出错
  11. HFSS器件导入Altium 教程
  12. 训练GAN的16个trick
  13. Window 配置RabbitMQ
  14. python设置excel单元格格式_Python帮你做Excel——格式设置与画图
  15. MySQL中建表时的int(m)中的m代表什么意思?
  16. 脉冲式和相位式激光测距
  17. 我迄今见过最完美的中文编程开发工具
  18. C++函数调用方式(_stdcall, _pascal, _cdecl...)总结
  19. python 利用Scipy计算person 和spearman相关系数
  20. Proxy_代理模式

热门文章

  1. shp文件中polyline是什么_shp文件的读取
  2. python抓取日本网站上iphone5的价格
  3. 马哥学习----李洋个人笔记--启动故障排除
  4. 雅士利处理器软件_雅士利/ASHLY DSP360 专业3进6出处理器
  5. hibernate之多对多映射操作中间表
  6. 计算机专业课程思政优秀案例,【转载】专业课程思政教学案例分享之《专业导论(计算机科学与技术)》...
  7. kotlin读取文件算法
  8. js判断Lodop驱动是否安装
  9. 小说作者推荐:耳东兔子合集
  10. php 2038年,php如何取2038年后的时间戳|php时间日期处理到2038年之后该怎么办 - PS下...