ML 系列:第 21 节 — 离散概率分布(二项分布)

news2024/11/13 7:24:52

一、说明

        二项分布描述了在固定数量的独立伯努利试验中一定数量的成功的概率,其中每个试验只有两种可能的结果(通常标记为成功和失败)。

二、探讨伯努利模型

        例如,假设您正在抛一枚公平的硬币 (其中正面成功,反面失败) 五次。每次翻转都是一次独立的伯努利试验,成功概率(正面朝上)为 0.5。现在,您有兴趣找到从 5 次翻转中正好获得 3 次正面的概率。此方案适合二项分布,因为您有固定数量的试验(五次翻转),并且每个试验只有两种可能的结果(正面或反面),因此它们成为独立的伯努利试验。

        总而言之,伯努利是:

  • 描述固定数量的独立伯努利试验的成功次数。
  • 由两个参数定义:试验次数 n 和成功概率 p

二项式分布的概率质量函数 (PMF) 由以下公式给出:

此处里:

现在,让我们分解公式:

三、二项式分布的期望值和方差

        期望,通常称为均值或平均值,表示随机变量在重复实验中的理论平均结果。在二项分布的上下文中,期望 E[X] 表示在给定数量的试验中预期的平均成功次数。二项分布的期望公式为:

        其中 n 是试验数,p 是单次试验成功的概率。

        假设您抛硬币 10 次。每次抛硬币都是一个独立的伯努利试验,其中正面朝上(成功)的概率为 = 0.5,反面(失败)的概率相同 q = 1−p = 0.5

        现在,让我们使用公式 E[X] = np 计算预期的正面 E[X] 数量:

这个结果告诉我们,平均而言,我们期望在 10 次抛硬币中得到 5 次正面。

另一方面,方差衡量分布围绕其平均值的散布或离散度。在二项分布中,方差 Var[X] 量化了实际结果与预期成功数的偏差程度。二项分布方差的公式为:

        该公式反映了这样一个事实,即二项式分布中结果的分布受试验数 n 和成功概率 p 的影响。较高的试验次数或接近 0.5 的成功概率往往会导致较大的方差,这表明成功次数的变异性更大。

四、示例:计算机失败的概率

        假设一家工厂有一台机器在任何一天都有 5% 的几率出现故障。我们想要找到机器在 30 天内恰好失败 3 次的概率。在这里,每天代表一个独立的伯努利试验,有两种可能的结果:机器失败(成功)或不失败(失败)。

        鉴于:

  • n=30(试验次数或天数)
  • p=0.05(机器在任何给定日期出现故障的概率)

        我们可以使用二项分布来查找 30 天内恰好失败 3 次的概率。二项分布的概率质量函数 (PMF) 由下式给出:

        将给定的值代入公式:

        这里:

        计算这些值:

因此:

PX=3) = 4060 × 0.000125 × 0.287 ≈ 0.145

因此,机器在 30 天内恰好失败 3 次的概率约为 0.145,即 14.5%。

五、用于轧制模具 100 次的二项式 PMF

        在这个例子中,我们探讨了将公平的六面骰子滚动 100 次的二项式概率质量函数 (PMF)。我们感兴趣的是确定在这 100 次掷骰子中掷出特定数字(例如,掷出“1”或“6”)一定次数的概率。由于骰子的每一面都有相等的概率为 1/6,因此特定数字出现的次数分布遵循二项式分布。

        二项分布由试验数 n 和成功概率 p 来表征。这里,n = 100 和 p = 1/6。该图显示了 k 获得 k 次成功(滚动特定数字)的概率,范围从 0 到 100

        为了进一步分析分布,我们在图上计算并显示预期的成功数 (期望) 和分布的可变性 (方差)。

import matplotlib.pyplot as plt
from scipy.stats import binom

# Number of trials (number of dice rolls)
n = 100

# Probability of success (rolling a specific number, e.g., 1 or 6)
p = 1 / 6

# Create a range of possible number of successes (0 to n)
k = range(n + 1)

# Calculate the PMF for each number of successes
pmf_values = [binom.pmf(x, n, p) for x in k]

# Calculate expectation and variance
expectation = n * p
variance = n * p * (1 - p)

# Plotting the PMF
plt.figure(figsize=(8, 5))
plt.bar(k, pmf_values, width=1.0, edgecolor='black')
plt.title('Binomial PMF for Rolling a Die 100 Times (Rolling a Specific Number)')
plt.xlabel('Number of Successes (Rolling a Specific Number)')
plt.ylabel('Probability')
plt.grid(True)

# Show expectation and variance on the plot
plt.axvline(expectation, color='r', linestyle='dashed', linewidth=2.5, label=f'Expectation (mean): {expectation:.2f}')
plt.axvline(expectation - variance**0.5, color='orange', linestyle='dashed', linewidth=2.5, label=f'Standard Deviation: {variance**0.5:.2f}')
plt.axvline(expectation + variance**0.5, color='orange', linestyle='dashed', linewidth=2.5)
plt.legend()
plt.show()

        这是上述代码的输出:

        期望值和方差计算:

  • 期望值(平均值):E[X] = np = 100 × 1/6 ≈ 33.33
  • 方差:Var[X] = np(1−p) = 100 × 1/6 × 5/6 ≈ 27.78 ≈ 27.78
  • 标准差:Var[X] ≈ 5.27

六、变化 (p) 对掷模二项分布的影响

        二项分布中的概率 p 表示每个试验中特定结果的可能性。当掷一个公平的骰子时,对于骰子的任何特定面,p 通常为 1/6。通过改变 p,我们可以探索如果骰子有偏差,分布如何变化。例如,如果加载骰子以将特定数字滚动到 0.3 的概率,则二项分布的形状和分布将发生变化,与公平骰子相比,在平均值附近显示更高的成功集中度。

        简单地说,我们可以更改上面的代码来计算和绘制不同 p 值的 PMF:

import matplotlib.pyplot as plt
from scipy.stats import binom

# Number of trials (number of dice rolls)
n = 100

# Define different probabilities of success
p_values = [1/6, 0.35]

# Create a range of possible number of successes (0 to n)
k = range(n + 1)

plt.figure(figsize=(8, 5))

for p in p_values:
    # Calculate the PMF for each number of successes
    pmf_values = [binom.pmf(x, n, p) for x in k]

    # Calculate expectation and variance
    expectation = n * p
    variance = n * p * (1 - p)

    # Plotting the PMF
    plt.plot(k, pmf_values, label=f'p = {p}')

    # Annotate the plot with expectation and variance
    plt.axvline(expectation, color='r', linestyle='dashed', linewidth=1)
    plt.axvline(expectation - variance**0.5, color='g', linestyle='dashed', linewidth=1)
    plt.axvline(expectation + variance**0.5, color='g', linestyle='dashed', linewidth=1)

plt.title('Binomial PMF for Rolling a Die 200 Times with Varying p')
plt.xlabel('Number of Successes (Rolling a Specific Number)')
plt.ylabel('Probability')
plt.legend()
plt.grid(True)
plt.show()

        这是上述代码的输出:

        变化 p:该脚本计算并绘制两个不同 p 值的 PMF:1/6(公平骰子)和 0.35(偏置骰子)。

        在机器学习系列的第 21 天,我们探索了二项分布,这是一种基本概率分布,用于对固定数量的独立伯努利试验的成功次数进行建模。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【优选算法篇】微位至简,数之恢宏——解构 C++ 位运算中的理与美

文章目录 C 位运算详解:基础题解与思维分析前言第一章:位运算基础应用1.1 判断字符是否唯一(easy)解法(位图的思想)C 代码实现易错点提示时间复杂度和空间复杂度 1.2 丢失的数字(easy&#xff0…

存算分离与计算向数据移动:深度解析与Java实现

背景 随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggrega…

WPS单元格重复值提示设置

选中要检查的所有的单元格 设置提示效果 当出现单元格值重复时,重复的单元格就会自动变化 要修改或删除,点击

Linux笔记之pandoc实现各种文档格式间的相互转换

Linux笔记之pandoc实现各种文档格式间的相互转换 code review! 文章目录 Linux笔记之pandoc实现各种文档格式间的相互转换1.安装 Pandoc2.Word转Markdown3.markdown转html4.Pandoc 支持的一些常见格式4.1.输入格式4.2.输出格式 1.安装 Pandoc sudo apt-get install pandoc # …

MySQL重难点(一)索引

目录 一、引子:MySQL与磁盘间的交互基本单元:Page 1、重要问题:为什么 MySQL 每次与磁盘交互,都要以 16KB 为基本单元?为什么不用多少加载多少? 2、有关MySQL的一些共识 3、如何管理 Page 3.1 单个 P…

solo博客使用非docker方式进行https部署

solo博客使用非docker方式进行https部署 数据库配置启动命令讲解设置自定义访问端口:9168 配置https访问部署效果 服务器上请通过 Docker 部署。但是我服务器资源有限,不想安装docker,直接以编译包的形式运行,节省资源。 如果不会…

【Steam登录】protobuf协议逆向 | 续

登录接口: ‘https://api.steampowered.com/IAuthenticationService/BeginAuthSessionViaCredentials/v1’ 精准定位,打上条件断点 this.CreateWebAPIURL(t) ‘https://api.steampowered.com/IAuthenticationService/BeginAuthSessionViaCredentials/v1…

环形链表问题(图 + 证明 + 题)

文章目录 判断链表是否有环返回链表开始入环的第一个结点 判断链表是否有环 题目链接 思路: 可以明确的是:若一个链表带环,那么用指针一直顺着链表遍历,最终会回到某个地方。 我们可以定义两个指针(快慢指针&#xf…

Linux Centos7 如何安装图形化界面

如果系统是以最小安装的话,一般是不带有图形化界面的,如果需要图形话界面,需要单独安装。本篇教程,主要介绍如何在CentOS7中安装图形化界面。 1、更新系统 首先,保证系统依赖版本处于最新。 sudo yum update -y2、安装 GNOME 桌面环境 sudo yum groupinstall "GNOME…

Spark的学习-02

Spark Standalone集群的安装 架构:普通分布式主从架构 主:Master:管理节点:管理从节点、接客、资源管理和任务 调度,等同于YARN中的ResourceManager 从:Worker:计算节点:负责利用自己…

Linux相关概念和易错知识点(20)(dentry、分区、挂载)

目录 1.dentry (1)路径缓存的原因 (2)dentry的结构 ①多叉树结构 ②file和dentry之间的联系 ③路径概念存在的意义 2.分区 (1)为什么要确认分区 (2)挂载 ①进入分区 ②被挂…

《Linux运维总结:基于银河麒麟V10+ARM64架构CPU部署redis 6.2.14 TLS/SSL哨兵集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、简介 Redis 哨兵模式是一种高可用性解决方案,它通过监控 Redis 主从架构,自动执行故障转移,从而确保服务的连续性。哨兵模式的核心组件包括哨兵(Sentine…

vue3实现一个无缝衔接、滚动平滑的列表自动滚屏效果,支持鼠标移入停止移出滚动

文章目录 前言一、滚动元素相关属性回顾一、实现分析二、代码实现示例:2、继续添加功能,增加鼠标移入停止滚动、移出继续滚动效果2、继续完善 前言 列表自动滚屏效果常见于大屏开发场景中,本文将讲解用vue3实现一个无缝衔接、滚动平滑的列表自…

腾讯云nginx SSL证书配置

本章教程,记录在使用腾讯云域名nginx证书配置SSL配置过程。 一、nginx配置 域名和证书,替换成自己的即可。证书文件可以自定义路径位置。服务器安全组或者防火墙需要开放80和443端口。 server {#SSL 默认访问端口号为 443listen 443 ssl; #请填写绑定证书的域名server_name c…

RabbitMQ的DLX(Dead-Letter-Exchange 死信交换机,死信交换器,死信邮箱)(重要)

RabbitMQ的DLX 1、RabbitMQ死信队列2、代码示例2.1、队列过期2.1.1、配置类RabbitConfig(关键代码)2.1.2、业务类MessageService2.1.3、配置文件application.yml2.1.4、启动类2.1.5、配置文件2.1.6、测试 2.2、消息过期2.2.1、配置类RabbitConfig2.2.2、…

陪诊问诊APP开发实战:基于互联网医院系统源码的搭建详解

时下,开发一款功能全面、用户体验良好的陪诊问诊APP成为了医疗行业的一大热点。本文将结合互联网医院系统源码,详细解析陪诊问诊APP的开发过程,为开发者提供实用的开发方案与技术指导。 一、陪诊问诊APP的背景与功能需求 陪诊问诊APP核心目…

FreeRTOS 21:递归互斥信号量

递归信号量,见文知义,递归嘛,就是可以重复获取调用的,本来按照信号量的特性,每获取一次可用信号量个数就会减少一个,但是递归则然, 对于已经获取递归互斥量的 任务可以重复获取该递归互斥量&…

算法|牛客网华为机试41-52C++

牛客网华为机试 上篇:算法|牛客网华为机试21-30C 文章目录 HJ41 称砝码HJ42 学英语HJ43 迷宫问题HJ44 SudokuHJ45 名字的漂亮度HJ46 截取字符串HJ48 从单向链表中删除指定值的节点HJ50 四则运算HJ51 输出单向链表中倒数第k个结点HJ52 计算字符串的编辑距离 HJ41 称砝…

mysql5安全审计

安装插件 插件需要严格与数据库版本适配,不然安装过程中会出现问题 解压插件 cd 插件所在路径unzip audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip#查看mysql默认插件目录 mysql> SHOW GLOBAL VARIABLES LIKE plugin_dir;# 将插件移动到mysql默认插件目…

MySQL 安装与配置

MySQL 安装与配置 MySQL 安装 MySQL 一般分为社区版和商业版,我们使用的是社区版(因为免费)。MySQL 安装的教程在网上有很多,此处就不再进行进行赘述,这里推荐两篇文章:如何在 Windows11 中安装 MySQL 8.…