Logistic Regression逻辑回归的简单解释
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+θ1x1+θ2x2
则(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+θ1x1+θ2x2eθ0+θ1x1+θ2x2(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+θ1x1+θ2x2
对上式两边取自然底数,有:
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+θ1x1+θ2x2
⇒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+θ1x1+θ2x2eθ0+θ1x1+θ2x2
通常会将上式写成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+θ1x1+θ2x2eθ0+θ1x1+θ2x2
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逻辑回归的简单解释相关推荐
- Logistic Regression逻辑回归的损失函数与梯度下降训练
有一篇博文提到logistic regression的简单理解(Logistic Regression逻辑回归的简单解释).逻辑回归实际上是odds取对数后的反函数,其函数形式也称为sigmoid f ...
- 【李宏毅机器学习】Logistic Regression 逻辑回归(p11) 学习笔记
李宏毅机器学习学习笔记汇总 课程链接 文章目录 Logistic Regression Step 1: Function Set Step 2: Goodness of a Function Step ...
- 【机器学习】Logistic Regression逻辑回归原理与java实现
[机器学习]Logistic Regression逻辑回归原理与java实现 1.基于概率的机器学习算法 2.逻辑回归算法原理 2.1.分离超平面 2.2.阈值函数 2.3.样本概率 2.4.损失函数 ...
- Tensorflow【实战Google深度学习框架】—Logistic regression逻辑回归模型实例讲解
文章目录 1.前言 2.程序详细讲解 环境设定 数据读取 准备好placeholder,开好容器来装数据 准备好参数/权重 拿到每个类别的score 计算多分类softmax的loss functio ...
- Logistic Regression 逻辑回归数学原理、python代码实现、实际应用
说在前面 第一次写博客,主要目的是再梳理一下学到东西的逻辑,如果可以帮助到其他在学习的人就更好啦.本篇主要参考的:<机器学习>西瓜书.博主文章:文章链接.以及知乎.百度等大神们的解惑文章 ...
- Logistic Regression逻辑回归
参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...
- Logistic Regression(逻辑回归) +python3.6(pycharm)实现
数学基础知识略过,可自行查询探究. 遇到的bugs: 1.AttributeError: module 'scipy' has no attribute '__version__' 解决办法:inst ...
- 机器学习-非线性回归( Unlinear Regression) -逻辑回归(Logistic Regression)算法
学习彭亮<深度学习基础介绍:机器学习>课程 概率 定义 概率(Probability): 对一件事情发生的可能性的衡量 范围 0 <= P <= 1 计算方法 根据个人置信 根 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归
Lecture6 Logistic Regression 逻辑回归 6.1 分类问题 Classification 6.2 假设表示 Hypothesis Representation 6.3 决策边 ...
最新文章
- mysql变量使用总结
- HTML5中的localStorage用法
- SQL连接查询和嵌套查询详解
- js中event对象属性和方法
- JVM内存参数详解以及配置调优
- mysql一个用户SQL慢查询分析,原因及优化
- 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc
- 详解CSS选择器、优先级与匹配原理
- Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)
- Raki的读paper小记:SpanBERT: Improving Pre-training by Representing and Predicting Spans
- 动易cms聚合空间最近访客访问地址错误解决方法
- fences卸载_Win10系统怎样卸载fences?Win10系统卸载fences图文教程-系统城
- Prometheus普罗米修斯监控的使用_v1.0.5
- macOS SwiftUI 进度指示器组件规范之 01 进度指标是什么 Progress Indicators
- 高级驾驶辅助系统各子系统一览
- Win10新版本下方任务栏经常卡死点不动
- php array_diff_assoc,关于array_diff_assoc的详细介绍
- 阿里少壮派上位:70后、80后全面掌舵阿里
- Linux并行执行权限,如何在Linux中使用flock控制程序的异步执行
- 从工控网络安全攻击中学习的经验