Logistic Regression也叫Logit Regression,在机器学习中属于参数估计的模型。逻辑回归与普通线性回归(Linear Regression)有很大的关系。在应用上,它们有所区别:

  • 普通线性回归主要用于连续变量的预测,即,线性回归的输出yyy的取值范围是整个实数区间(y∈Ry \in Ry∈R)
  • 逻辑回归用于离散变量的分类,即,它的输出yyy的取值范围是一个离散的集合,主要用于类的判别,而且其输出值yyy表示属于某一类的概率

一个单独的逻辑回归函数只能判别两个类,这里用0和1表示. 逻辑回归的结果会给出一个概率ppp,表示属于类别1的概率。既然是两类问题,那么属于类别0的概率自然就是1−p1-p1−p。有没有发现一点二项分布(Binomial Distribution)的影子?

逻辑回归应用广泛,而且因为给出的结果是一个概率,比单纯的“是”或“不是”包含更多的信息,因此大受人们喜爱(误)。我们之前参加Kaggle广告点击率预测竞赛时使用的就是逻辑回归。因为用户要么点了广告,要么没点,我们给出一个概率,就可以判断用户的点击广告的可能性。这个预测看起来很简单,的确是,模型很简单的,难的地方在于features的分析,选取,综合等,也就是常说的pre-processing。

文章内容

很多文章介绍逻辑回归时会直接给出一个叫sigmoid的函数,该函数的值域范围是(0,1)(0,1)(0,1),刚好是概率的取值范围(也不完全是,因为是开区间)。本文会再稍微往前一点点,从引入sigmoid函数之前介绍一下Logistic Regression。文章只做简单介绍(真的很简单),不涉及参数估计的内容。

Odds与Logit函数

逻辑回归的输入是一个线性组合,与线性回归一样,但输出变成了概率。而且逻辑回归用于预测两类问题,类似一个伯努利试验。假设在一个伯努利试验中,成功的概率是ppp,失败的概率是1−p1-p1−p,我们设逻辑回归的输出是成功的概率ppp,那么需要一个函数将逻辑回归的输入(一个线性组合)与ppp联系起来。下面介绍这个函数,它的名字叫Logit.

我们定义:
(1)Odds=p1−pOdds = \frac{p}{1-p} \tag1Odds=1−pp​(1)
上式很直观,表示成功的概率是失败概率的多少倍,中文叫做发生比

在赌博中,发生比大概描述了赢的概率是输的概率的几倍。

对Odds取自然对数:
(2)ln⁡(Odds)=ln⁡(p1−p)=ln⁡(p)−ln⁡(1−p)\ln(Odds) = \ln(\frac{p}{1-p}) = \ln(p) - \ln(1-p) \tag2ln(Odds)=ln(1−pp​)=ln(p)−ln(1−p)(2)
上式即为logit函数的定义,参数为ppp,记为:
(3)logit(p)=ln⁡(Odds)logit(p) = \ln(Odds) \tag3logit(p)=ln(Odds)(3)
logit(p)logit(p)logit(p)的图像如下所示,可以看到它的定义域是[0,1][0,1][0,1],值域是RRR。

但我们要的是定义域是RRR,值域是[0,1][0,1][0,1]。于是我们求(3)式的反函数,并将参数ppp用另一个参数α\alphaα表示,有:
(4)logit−1(α)=11+e−α=eα1+eαlogit^{-1}(\alpha) = \frac{1}{1+e^{-\alpha}} = \frac{e^\alpha}{1+e^\alpha} \tag4logit−1(α)=1+e−α1​=1+eαeα​(4)
上式中α\alphaα可以取全体实数,而该函数的值域变成了(0,1)(0,1)(0,1),这正是我们想要的效果。logit(p)logit(p)logit(p)的反函数logit−1(α)logit^{-1}(\alpha)logit−1(α)的名称就是我们常常听到的sigmoid函数。它的形状像字母S。

sigmoid由sigma和后缀-oid合成而来。sigma即希腊文第十八个字母σ\sigmaσ,通常用来指代S,后缀-oid表示『像……的东西』,因此sigmoid函数实际上是以函数的形状命名,表示一个像S型的函数。

输入与输出

在(4)式中,输入的参数α\alphaα可以是任何数,也可以将其作为一个线性组合输入。例如,另
α=θ0+θ1x1+θ2x2\alpha = \theta_0 + \theta_1 x_1 + \theta_2 x_2α=θ0​+θ1​x1​+θ2​x2​
则(4)式的sigmoid函数可以写成:
(5)sigmoid(α)=logit−1(α)=eθ0+θ1x1+θ2x21+eθ0+θ1x1+θ2x2sigmoid(\alpha) = logit^{-1}(\alpha) = \frac{e^{\theta_0 + \theta_1 x_1 + \theta_2 x_2}}{1+e^{\theta_0 + \theta_1 x_1 + \theta_2 x_2}} \tag5sigmoid(α)=logit−1(α)=1+eθ0​+θ1​x1​+θ2​x2​eθ0​+θ1​x1​+θ2​x2​​(5)
上式就是逻辑回归的一般用法。注意到它的输入还是一个线性组合,跟线性回归的输入是一样的,只不过计算的时候比线性回归多了一层函数,因此这就是为什么会有文章说逻辑回归的本质还是线性回归,也会看到有一些文章说在特征到结果的映射中多加了一层函数映射,这个函数映射就是sigmoid。

(5)式是计算概率ppp的表达式,这个表达式也可以从logitlogitlogit函数来推导。因为logit(p)logit(p)logit(p)与一个线性组合是等价的(也再一次说明逻辑回归的本质还是线性回归)。

令logitlogitlogit函数等于一个线性组合(这是可以的,因为logitlogitlogit函数的定义域和值域与一个线性组合的定义域和值域是一样的),即:
logit(p)=ln⁡(p1−p)=θ0+θ1x1+θ2x2logit(p) = \ln(\frac{p}{1-p}) = \theta_0 + \theta_1 x_1 + \theta_2 x_2logit(p)=ln(1−pp​)=θ0​+θ1​x1​+θ2​x2​
对上式两边取自然底数,有:
p1−p=eθ0+θ1x1+θ2x2\frac{p}{1-p} = e^{ \theta_0 + \theta_1 x_1 + \theta_2 x_2}1−pp​=eθ0​+θ1​x1​+θ2​x2​
⇒p=eθ0+θ1x1+θ2x21+eθ0+θ1x1+θ2x2\Rightarrow p = \frac{e^{\theta_0 + \theta_1 x_1 + \theta_2 x_2}}{1+e^{\theta_0 + \theta_1 x_1 + \theta_2 x_2}} ⇒p=1+eθ0​+θ1​x1​+θ2​x2​eθ0​+θ1​x1​+θ2​x2​​
通常会将上式写成p^=eθ0+θ1x1+θ2x21+eθ0+θ1x1+θ2x2\hat{p} = \frac{e^{\theta_0 + \theta_1 x_1 + \theta_2 x_2}}{1+e^{\theta_0 + \theta_1 x_1 + \theta_2 x_2}}p^​=1+eθ0​+θ1​x1​+θ2​x2​eθ0​+θ1​x1​+θ2​x2​​
p^\hat{p}p^​表示ppp的估计值。

上式就是(5)式。这样求概率ppp便变成了参数估计问题:估计参数θ\thetaθ,使得p^\hat{p}p^​最接近ppp。

虽然逻辑回归通常用于两个类的判别问题,但是将多个逻辑回归函数组合起来就可以解决多类判别的问题。

Refrence

Youtube上有一个关于Logistic Regression的视频的入门级系列介绍,本文就是根据这个系列的介绍写的。想对Logistic Regression有快速的了解可以参考这个系列视频(可惜要翻墙,QQ)
https://www.youtube.com/watch?v=zAULhNrnuL4

Logistic Regression逻辑回归的简单解释相关推荐

  1. Logistic Regression逻辑回归的损失函数与梯度下降训练

    有一篇博文提到logistic regression的简单理解(Logistic Regression逻辑回归的简单解释).逻辑回归实际上是odds取对数后的反函数,其函数形式也称为sigmoid f ...

  2. 【李宏毅机器学习】Logistic Regression 逻辑回归(p11) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Logistic Regression Step 1: Function Set Step 2: Goodness of a Function Step ...

  3. 【机器学习】Logistic Regression逻辑回归原理与java实现

    [机器学习]Logistic Regression逻辑回归原理与java实现 1.基于概率的机器学习算法 2.逻辑回归算法原理 2.1.分离超平面 2.2.阈值函数 2.3.样本概率 2.4.损失函数 ...

  4. Tensorflow【实战Google深度学习框架】—Logistic regression逻辑回归模型实例讲解

    文章目录 1.前言 2.程序详细讲解 环境设定 数据读取 准备好placeholder,开好容器来装数据 准备好参数/权重 拿到每个类别的score 计算多分类softmax的loss functio ...

  5. Logistic Regression 逻辑回归数学原理、python代码实现、实际应用

    说在前面 第一次写博客,主要目的是再梳理一下学到东西的逻辑,如果可以帮助到其他在学习的人就更好啦.本篇主要参考的:<机器学习>西瓜书.博主文章:文章链接.以及知乎.百度等大神们的解惑文章 ...

  6. Logistic Regression逻辑回归

    参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...

  7. Logistic Regression(逻辑回归) +python3.6(pycharm)实现

    数学基础知识略过,可自行查询探究. 遇到的bugs: 1.AttributeError: module 'scipy' has no attribute '__version__' 解决办法:inst ...

  8. 机器学习-非线性回归( Unlinear Regression) -逻辑回归(Logistic Regression)算法

    学习彭亮<深度学习基础介绍:机器学习>课程 概率 定义 概率(Probability): 对一件事情发生的可能性的衡量 范围 0 <= P <= 1 计算方法 根据个人置信 根 ...

  9. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归

    Lecture6 Logistic Regression 逻辑回归 6.1 分类问题 Classification 6.2 假设表示 Hypothesis Representation 6.3 决策边 ...

最新文章

  1. mysql变量使用总结
  2. HTML5中的localStorage用法
  3. SQL连接查询和嵌套查询详解
  4. js中event对象属性和方法
  5. JVM内存参数详解以及配置调优
  6. mysql一个用户SQL慢查询分析,原因及优化
  7. 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc
  8. 详解CSS选择器、优先级与匹配原理
  9. Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)
  10. Raki的读paper小记:SpanBERT: Improving Pre-training by Representing and Predicting Spans
  11. 动易cms聚合空间最近访客访问地址错误解决方法
  12. fences卸载_Win10系统怎样卸载fences?Win10系统卸载fences图文教程-系统城
  13. Prometheus普罗米修斯监控的使用_v1.0.5
  14. macOS SwiftUI 进度指示器组件规范之 01 进度指标是什么 Progress Indicators
  15. 高级驾驶辅助系统各子系统一览
  16. Win10新版本下方任务栏经常卡死点不动
  17. php array_diff_assoc,关于array_diff_assoc的详细介绍
  18. 阿里少壮派上位:70后、80后全面掌舵阿里
  19. Linux并行执行权限,如何在Linux中使用flock控制程序的异步执行
  20. 从工控网络安全攻击中学习的经验

热门文章

  1. Django组件-用户认证
  2. [美团 CodeM 初赛 Round A]最长树链
  3. 《循序渐进学Spark》一1.7 本章小结
  4. mysql privileges
  5. 日志中的秘密:Windows登录类型
  6. [转]异步性能:了解 Async 和 Await 的成本
  7. Spring多数据源解决方案
  8. PHP加速 eAccelerator配置和使用指南
  9. 使用 Nginx 提升网站访问速度(转)
  10. JavaScript玩转机器学习:模型和层