逻辑回归的输出值为什么可以作为概率?

news/发布时间2024/5/15 23:42:13



为什么逻辑回归的输出值可以作为概率?或者说为什么逻辑回归要求假设因变量符合伯努利分布?

这是因为逻辑回归(Logistic Regression)的Sigmoid函数是符合广义线性模型(General Linear Model)的伯努利分布(Bernoulli Distribution)的规范联结函数(Canonical Link Function)的反函数,Sigmoid函数将线性函数映射到伯努利分布的期望

要解释清楚上面的这段话,还得从广义线性模型(GLM)(详见:传送门)说起

广义线性模型不是一个模型,而是一类模型的总称,当一个模型属于指数分布族时,我们认为该模型是广义线性模型的一个特例

每一个特定的广义线性模型对应一个特定的分布,例如我们之前提到的线性回归模型,对应的是正态分布

广义线性模型中,每一个分布都对应存在一个正则(规范)联结函数(Canonical Link Function),这一函数的反函数可以将线性函数映射到该分布的期望

例如,通过正态分布的正则联结函数的反函数,我们可以将线性回归模型映射到正态分布的期望值 μ μ μ,这正是我们所熟悉的线性回归模型中所做的事情

为什么线性回归要求假设因变量符合正态分布?这是因为线性回归对于一个新的数据的预测值,其本身就是正态分布的期望(详见:传送门),如果我们所使用的数据本身不符从正态分布,那么强行使用线性回归显然会得到一个很差的结果

与之相似,逻辑回归也是广义线性模型的特例,其对应的分布是伯努利分布

Sigmoid函数是伯努利分布的联结函数的反函数,它将线性函数映射到了伯努利分布的期望上,而伯努利分布的期望本身就是概率,因此,逻辑回归得到的输出可以代表概率,也正是因为它代表概率,才落在(0,1)之间

如果该函数的反函数能够将线性方程映射到某个广义线性模型的期望,则该函数称为联结函数,使用 g ( ⋅ ) \rm g(·) g()表示,联结函数的反函数使用 g ′ ( ⋅ ) \rm g'(·) g()表示

例如,对于线性函数
y = ω T x + b y=\omega^T x+b y=ωTx+b

使用 ln ⁡ ( ⋅ ) \ln(·) ln()联结函数将上面线性函数转换为非线性函数,即 ln ⁡ ( ⋅ ) \ln(·) ln()联结函数的反函数为
y = e ω T x + b y=e^{\omega ^Tx+b} y=eωTx+b

如果使用Sigmoid函数
s ( z ) = 1 1 + e − z s(z)=\frac{1}{1+e^{-z}} s(z)=1+ez1

作为联结函数将上述线性函数转换为非线性函数,即Sigmoid联结函数的反函数为
s ′ ( z ) = s ( z ) ( 1 − s ( z ) ) s'(z)=s(z)(1-s(z)) s(z)=s(z)(1s(z))

具体计算过程见文章:传送门

Sigmoid函数的联结函数的反函数是伯努利分布(详见:传送门),该函数将线性函数映射到伯努利分布的期望上,使其输出可以作为概率

推导过程详见文章:传送门



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

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

相关文章

【vue3学习笔记】customRef;provide与inject;响应式数据的判断

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 课程 P161节 《customRef》笔记 通过实现一个小例子来学习customRef:在输入框中输入内容时,底下的h3标签延迟一秒同步显示输入框中输入的内容。 customRef使用方法:调用customRef方法时&…

正则表达式(拓展)、grep(拓展)和sed

一、正则表达式 egrep默认使用的是扩张正则。 表示次数 *匹配前面字符任意数?0次或者1次1次或者多次{n}匹配n次{m,n}最少m次,最多n次{,n}匹配前面的字符最多n次{n,}匹配前面的字符最少n次 表示分组 ()分组将多个字符捆绑在一起当作一个整体处理\1、\2后…

Java SE 入门到精通—基础语法【Java】

敲重点! 本篇讲述了比较重要的基础,是必须要掌握的 1.程序入口 在Java中,main方法是程序的入口点,是JVM(Java虚拟机)执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范: publ…

林浩然与杨凌芸的Java List大冒险

林浩然与杨凌芸的Java List大冒险 Lin Haoran and Yang Lingyun’s Java List Adventure 在一个阳光明媚的日子,程序员界的“侠客”林浩然和他那聪明伶俐的同事兼好友杨凌芸正在Java王国里进行一场别开生面的大冒险。这次他们的目标是征服两个强大的List家族成员——…

Vue 中 onclick和@click区别

文章目录 一、直接上结论二、验证代码&#xff0c;可直接运行三、点击结果 一、直接上结论 onclick 只能触发 js的原生方法&#xff0c;不能触发vue的封装方法click 只能触发vue的封装方法&#xff0c;不能触发js的原生方法 二、验证代码&#xff0c;可直接运行 <!DOCTYP…

Mac M2芯片配置PHP环境

Mac M2芯片配置PHP环境 1. XAMPP2. PHPBrew(PHP版本管理)安装php7.4.33版本 3. 直接使用homebrew 安装php环境参考 1. XAMPP 官网地址 https://www.apachefriends.org/ 安装 安装完成 web server打开后&#xff0c;在打开localhost 成功&#xff01; 2. PHPBrew(PHP版本管…

JMeter 配置元件之按条件读取CSV Data Set Config

实践环境 win10 JMeter 5.4.1 需求描述 需求是这样的&#xff0c;需要压测某个接口(取消分配接口)&#xff0c;请求这个接口之前&#xff0c;需要先登录系统(物流WMS系统)&#xff0c;并在登录后&#xff0c;选择并进入需要操作的仓库&#xff0c;然后请求接口&#xff0c;…

数据结构-邻接矩阵

介绍 邻接矩阵&#xff0c;是表示图的一种常见方式&#xff0c;具体表现为一个记录了各顶点连接情况的呈正方形的矩阵。 假设一共有以下顶点&#xff0c;其连接关系如图所示 那么&#xff0c;怎么表示它们之间的连接关系呢&#xff1f; 我们发现&#xff0c;各条边所连接的都…

中科大计网学习记录笔记(十二):TCP 套接字编程

前前言&#xff1a;大家看到这一章节的时候一定不要跳过&#xff0c;虽然标题是编程&#xff0c;但实际上是对 socket 的运行机制做了详细的讨论&#xff0c;对理解 TCP 有很大的帮助&#xff1b;但是由于本节涉及到了大量的编程知识&#xff0c;对于一些朋友来说不是很好理解&…

Linux守护进程和会话

守护进程&#xff1a; 守护进程也叫精灵进程&#xff0c;是Linux中的后台服务进&#xff0c;通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事情。一般采用以d结尾的名字。 Linux后台的一些系统服务进程&#xff0c;没有控制终端&#xff0c;不能直接和用户…

2024年及以后在您的项目中使用的最佳CSS框架

在过去几年中&#xff0c;CSS已经取得了长足的进步。在过去&#xff0c;您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在&#xff0c;您可以设计复杂的交互式用户界面&#xff0c;具有优雅的设计。 尽管CSS变得越来越先进&#x…

【数据库】达梦数据库DM8开发版安装

目录 一、达梦数据库概述 1.1 达梦数据库简介 1.2 产品特性 1.3 产品架构 二、安装前准备 2.1 新建 dmdba 用户 2.2 修改文件打开最大数 2.3 挂载镜像 2.4 新建安装目录 2.5 修改安装目录权限 三、数据库安装 3.1 命令行安装 3.2 配置环境变量 四、配置实例 4.1…

自动驾驶中的 DCU、MCU、MPU、SOC 和汽车电子架构

自动驾驶中的 DCU、MCU、MPU 1. 分布式电子电气架构2. 域集中电子电气架构架构2.1 通用硬件定义 3. 车辆集中电子电气架构4. ADAS/AD系统方案演变进程梳理4.1 L0-L2级别的ADAS方案4.2 L2以上级别的ADAS方案 5. MCU和MPU区别5.1 MCU和MPU的区别5.2 CPU与SoC的区别5.3 举个例子 R…

java面试题之SpringMVC篇

Spring MVC的工作原理 Spring MVC的工作原理如下&#xff1a; DispatcherServlet 接收用户的请求找到用于处理request的 handler 和 Interceptors&#xff0c;构造成 HandlerExecutionChain 执行链找到 handler 相对应的 HandlerAdapter执行所有注册拦截器的preHandler方法调…

Redis 单个与多节点如何实现分布式锁

分布式锁 在许多环境中&#xff0c;分布式锁是非常有用的原语&#xff0c;在这些环境中&#xff0c;不同的进程必须以互斥的方式操作共享资源。在应对并发问题时&#xff0c;Redis 客户端还可以通过加锁的方式&#xff0c;来控制并发写操作对共享数据的修改&#xff0c;从而保…

数据分析 — Matplotlib 、Pandas、Seaborn 绘图

目录 一、Matplotlib1、折线图2、柱状图3、水平条形图4、直方图5、散点图6、饼图 二、pandas1、折线图2、柱状图 三、seaborn1、散点图2、箱线图3、直方核密度图4、成对图 一、Matplotlib Matplotlib 是一个用于绘制数据可视化图形的 Python 库。它提供了丰富的绘图工具&#…

从零开始学习Netty - 学习笔记 - NIO基础 - 文件编程:FileChannel,Path,Files

3.文件编程 3.1.FileChannel FileChannel只能工作在非阻塞模式下面&#xff0c;不能和selector一起使用 获取 不能直接打开FIleChannel&#xff0c;必须通过FileInputSream&#xff0c;或者FileOutputSetream &#xff0c;或者RandomAccessFile来获取FileChannel 通过FileIn…

如何使用Docker本地部署Jupyter+Notebook容器并结合内网穿透实现远程访问

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)

文章目录 10.1 构建微服务架构 - 探索 Go 语言的微观世界10.1.1 基础知识讲解10.1.2 重点案例:订单处理系统订单服务测试服务10.1.3 拓展案例 1:用户认证服务安装所需的包实现用户模型和存储实现 JWT 生成和验证实现认证服务测试服务10.1.4 拓展案例 2:商品推荐服务设计商品…

深入浅出熟悉OpenAI最新大作Sora文生视频大模型

蠢蠢欲动&#xff0c;惴惴不安&#xff0c;朋友们我又来了&#xff0c;这个春节真的过的是像过山车&#xff0c;Gemini1.5 PRO还没过劲&#xff0c;OpenAI又放大招&#xff0c;人类真的要认输了吗&#xff0c;让我忍不住想要再探究竟&#xff0c;到底是什么让文生视频发生了质的…
推荐文章