【机器学习前置知识】Beta分布
Beta分布与二项分布的关系
Beta分布与二项分布密切相关,由二项分布扩展而来,它是用来描述一个连续型随机变量出现的概率的概率密度分布,表示为 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) , a 、 b a、b a、b 是形状参数。Beta分布本质上也是一个概率密度函数,只是这个函数的自变量和因变量都表示某种概率。
下面我们会先温故下二项分布的知识,然后循序渐进地引出Beta分布。
在二项分布这篇文章里介绍过,二项分布能解决的是 n次独立伯努利试验中成功k次的概率 问题,记作 X X X~ B i n ( n , p ) Bin(n,p) Bin(n,p) 。
仍以抛硬币为例,二项分布求的是抛 n n n 次硬币中出现 k k k 次正面向上的概率,它是一个概率质量函数(对离散型随机变量叫概率质量函数、对连续性随机变量叫概率密度函数),这个函数的自变量是 k k k ,因变量是概率,前提是硬币出现正面向上的概率 p p p (质地均匀)和抛的次数 n n n 是已知的。
假设一枚硬币质地均匀,也就是说抛一次硬币,出现正面向上和反面向上的概率 p p p 都为0.5,然后抛10次,下图是正面向上出现0次到10次的概率图:

附绘图代码
import numpy as np import matplotlib.pyplot as plt from scipy.stats import binom #plt.rcParams['font.family']=['Arial Unicode MS']n = 10 #试验次数 p = 0.5 #正面向上的概率#生成x轴的数据点 x = np.arange(0, n + 1, 0.001)#二项分布的概率质量函数(PMF)和累积分布函数(CDF) pmf = binom.pmf(x, n, p) #cdf = binom.cdf(x, n, p)plt.figure(figsize=(10, 5)) plt.subplot(121) plt.plot(x, pmf, 'b-', lw=2, label='PMF') plt.vlines(x, 0, pmf, colors='b', lw=1, alpha=0.5) plt.xlabel('正面向上次数') plt.ylabel('概率') plt.title('二项分布-抛硬币10次') plt.legend() plt.show()
正常来说,我们可以提前就预料到结果中出现5次正面向上的概率最大,实际上也雀食如此。但这是对质地均匀的硬币来说的,如果是一枚质地不均匀的硬币,我们还能这么信誓旦旦地判断吗?
再假设我们拿到了一枚不知道是否质地均匀的硬币,然后想求抛一次硬币正面向上的概率。这个问题如何解决呢?
一个粗糙的解决方案是: 我尽可能地多抛硬币,然后看所有结果中正面向上出现的概率是多少,这个概率就是抛一次硬币正面向上的概率的逼近。比如我茶不思饭不想地连续抛了10000次硬币,其中出现正面向上的有3000次,现在我可以自信地说再抛一次硬币正面向上的概率 大概 就是0.3。注意我这里用了大概两个字,也就是说0.3这个概率只是抛一次硬币中正面向上出现的所有概率中最大的一个概率,那有没有可能是0.4、0.5甚至0.9呢?是有可能的,只是这些概率出现的概率都相对0.3 更低 罢了。
再试想一下,我只抛了100次,其中出现正面向上的有30次,那我判断再抛一次硬币正面向上的概率是0.3的 把握 是不是会比10000次出现3000次 更低 呢?
用图展示一下抛一次质地未知硬币出现正面向上的概率的概率(先验知识是已知抛了n次中出现正面向上的有a次):

附绘图代码
import numpy as np import matplotlib.pyplot as plt from scipy.stats import beta #plt.rcParams['font.family']=['Arial Unicode MS']a1 = 3000 # 抛一万次硬币中正面向上的次数 b1 = 7000 # 抛一万次硬币中反面向上的次数 a2 = 30 # 抛一百次硬币中正面向上的次数 b2 = 70 # 抛一百次硬币中反面向上的次数x = np.linspace(0.0, 1.0, 1000)# 计算Beta分布的概率密度函数值 y1 = beta.pdf(x, a1, b1) y2 = beta.pdf(x, a2, b2)plt.plot(x, y1, label='Beta(a={}, b={})'.format(a1, b1)) plt.plot(x, y2, label='Beta(a={}, b={})'.format(a2, b2)) plt.xlabel('正面向上的概率') plt.ylabel('概率密度') plt.title('抛一次质地未知硬币出现正面向上的概率的概率') plt.legend() plt.show()
这个图像表示了抛一次质地未知硬币出现正面向上的概率的概率分布,其中图像的形状随参数a和b的不同而变化。从图中可以看出:
- 基于抛10000次硬币中出现正面向上3000次的是蓝色曲线,其在横坐标上正面向上的概率为0.3处取得最大值,即再抛一次硬币出现正面向上的概率是0.3的结果最为确信;
- 基于抛100次硬币中出现正面向上30次的是橙色曲线,其也在横坐标上正面向上的概率为0.3处取得最大值,即再抛一次硬币出现正面向上的概率是0.3的结果最为确信,但与蓝色曲线对比可以看出,明显橙色曲线对此判断的把握要比蓝色曲线小得多;
那么如何去量化上面提到的 更低 与 把握 ?此时就该Beta分布登场了!
细心的小伙伴可以看出上图就是用Beta函数画出来的图像。
文章开头说过Beta分布的表示为 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) ,其中 a 、 b a、b a、b 是形状参数,可以控制图像的形状。对应到抛硬币场景中,
相关文章:
【机器学习前置知识】Beta分布
Beta分布与二项分布的关系 Beta分布与二项分布密切相关,由二项分布扩展而来,它是用来描述一个连续型随机变量出现的概率的概率密度分布,表示为 X X X~ B e t a ( a , b ) Beta(a,b) Beta(a,b) , a 、 b a、b a、b 是形状参数。Beta分布本质上也是一个概率密度函数,只是这…...
Notepad++批量更改文件编码格式及文档格式
背景: 在项目中遇到Windows平台VS的MSVC编译不识别Unix下UTF-8编码导致的编译失败问题。需要将Unix下的UTF-8转为UTF-8-BOM格式。网上找了些方式,之后又深入探究了下文档转换的可能性,共享给大家。(当然Windows和Unix平台代码格式…...
Linux驱动开发学习笔记6《蜂鸣器实验》
目录 一、蜂鸣器驱动原理 二、硬件原理分析 三、实验程序编写 1、 修改设备树文件 (1)添加pinctrl节点 (2)添加BEEP设备节点 (3)检查PIN 是否被其他外设使用 2、蜂鸣器驱动程序编写 3、编写测试AP…...
鸿蒙(HarmonyOS 3.1) DevEco Studio 3.1开发环境汉化
鸿蒙(HarmonyOS 3.1) DevEco Studio 3.1开发环境汉化 一、安装环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、设置过程 打开IDE,在第一个菜单File 中找到Settings...菜单 在Setting...中找到Plugins…...
毫米波雷达:从 3D 走向 4D
1 毫米波雷达已广泛应用于汽车 ADAS 系统 汽车智能驾驶需要感知层、决策层、执行层三大核心系统的高效配合,其中感知层通过传感器探知周围的环境。汽车智能驾驶感知层将真实世界的视觉、物理、事件等信息转变成数字信号,为车辆了解周边环境、制定驾驶操…...
CENTOS docker拉取私服镜像
概述 docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker镜像的拉取。 centos6版本太老,docker的使用过程中问题较多,centos7相对简单容易。 本文档主要介绍centos系统安装docker和拉取docker私…...
【前端面经】即时设计
目录 前言一面git 常见命令跨窗口通信vue 响应式原理发布订阅模式翻转二叉树Promise.all()扁平化数组面试官建议 二面Event Loop 原理Promise 相关css 描边方式requestAnimationReact 18 新特性JSX 相关react 输出两次函数式编程React 批处理机制http请求头有哪些本地存储性能优…...
前端三件套html/css/js的基本认识以及示例程序
简介 本文简要讲解了html,css,js.主要是让大家简要了解网络知识 因为实际开发中很少直接写html&css,所以不必过多纠结,了解一下架构就好 希望深度学习可以参考MDN和w3school HTML 基础 HTML (Hyper Text Markup Language) 不是一门编程语言,而是一种用来告知浏览器如…...
云计算:OpenStack 配置云主机实例的存储挂载并实现外网互通
目录 一、实验 1. 环境 2.配置存储挂载 3.云主机实例连接外部网络(SNAT) 4.外部网络连接云主机实例(DNAT) 二、问题 1.云主机 ping 不通外部网络 2.nova list 查看云主机列表报错 3.nova list 与 virsh list --all有何区…...
python/selenium/jenkins整合
1、新建python项目,专门写selenium代码,建议用pytest框架写。 2、把代码上传到代码库中。 3、环境配置: 3.1 在跑jenkins的机器上配置好python环境,需要python --version能在任何地方运行(配置好系统环境变量&#…...
华为路由器ACL操作SSH接口
ACL的定义 访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特…...
Flutter 三点三:Dart Stream
Stream Stream用于接收异步事件Stream 可以接收多个异步事件Stream.listen()方法返回StreamSubscription 可用于取消事件订阅,取消后,不再接收事件 基本使用 Stream.fromFutures([Future.delayed(Duration(seconds: 1),(){return "事件1";})…...
centos 防火墙 设置 LTS
centos 防火墙 设置 LTS https://blog.csdn.net/m0_58805648/article/details/130671008...
SAP缓存 表缓存( Table Buffering)
本文主要介绍SAP中的表缓存在查询数据,更新数据时的工作情况以及对应概念。 SAP表缓存的工作 查询数据 更新数据 删除数据 表缓存的概念 表缓存技术设置属性 不允许缓冲: 允许缓冲,但已关闭: 缓冲已激活: 已…...
Mybatis插件入门
专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…...
DOA估计算法——迭代自适应算法(IAA)
1 简介 迭代自适应法 (Iterative Adaptive Approach,IAA)估计算法最早由美国的电气工程师和数学家Robert Schmidt和Roy A. Kuc在1986年的一篇论文"Multiple Emitter Location and Signal Parameter Estimation"中首次提出了这一算法, IAA DOA …...
Python If语句以及代码块的基本介绍
if语句 在编程中if语句是一种根据条件执行不同代码块的控制结构,他根据条件的真假来分支程序的执行路径,所以我们可以通过if语句根据不同情况而执行不同的程序 格式 if [条件(bool值或者计算结果为bool类型的算式)] : a11if a>10:print("a大于10") # --> a大…...
[嵌入式专栏](FOC - SVPWM扇区计算Part1)
文章目录 1 . 概要2 . 扇区计算2.1 扇区Ⅰ计算2.2 扇区Ⅱ计算2.3 扇区Ⅲ计算 3 . 小结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 概要 经过扇区判断后,就知道在哪个扇区进行输出了 【Q】但是每个扇区分别输出怎样的结…...
亚马逊美国站ASTM F2613儿童折叠椅和凳子强制性安全标准
ASTM F2613折叠椅和凳子安全标准 美国消费品安全委员会(CPSC)发布的ASTM F2613儿童折叠椅和凳子的强制性安全标准,已于2020年7月6日生效,并被纳入联邦法规《16 CFR 1232儿童折叠椅和凳子安全标准》。 亚马逊要求在美国站上架的儿…...
【机组期末速成】指令系统|机器指令概述|操作数类型与操作类型|寻址方式|指令格式
🎥 个人主页:深鱼~🔥收录专栏:计算机组成原理🌄欢迎 👍点赞✍评论⭐收藏 目录 前言: 一、本章考点总览 二、考点分析 1、以下有关指令系统的说法中错误的是( )。 2…...
HDD与SSD存储技术演进:从产业变迁看成本容量比与分层存储实践
1. 硬盘驱动器产业的十字路口:一场迟来的告别十多年前,当我在实验室里第一次把玩一块2.5英寸的机械硬盘,惊叹于它能在方寸之间存储数十GB的数据时,绝不会想到,这个看似坚不可摧的存储基石,其背后的商业帝国…...
从《EE Times》看电子工程师的变迁:技术浪潮与职业坚守
1. 从一份行业报纸的生日说起:我们为何怀念《EE Times》?前几天,我偶然翻到一篇旧文,是《EE Times》前主编史蒂夫韦茨纳在2013年,为这份报纸创刊40周年写的一篇回顾。文章不长,但字里行间那种对行业黄金时代…...
华为OD机试真题 新系统 2026-5-13 多语言实现【查找能被整除的最大整数】
查找能被整除的最大整数(Py/Java /C/C/Js/Go)题解 华为OD新系统机试真题 华为OD新系统上机考试真题 5月13号 100分题型 华为OD机试真题目录点击查看: 华为OD机试真题题库目录|机考题库 算法考点详解 题目内容 给定一个字符串和一个正整数,字符串由大…...
JAVA校园跑腿代买代拿社区-校园跑腿小程序的后端代码示例
🏃 JAVA校园跑腿系统 - 后端完整代码示例校园跑腿代买代拿 | Spring Boot MyBatis Plus MySQL Redis📦 一、项目依赖 pom.xmlxml<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/…...
SwiftUI原生集成ChatGPT API:从架构设计到流式响应实战
1. 项目概述:一个原生的Swift版ChatGPT客户端最近在折腾iOS和macOS上的AI应用开发,发现了一个挺有意思的开源项目:alfianlosari/ChatGPTSwift。简单来说,这是一个用纯SwiftUI构建的、直接调用OpenAI官方API的ChatGPT客户端。它不是…...
CoPaw个人AI工作站:私有化部署与智能体集成实战指南
1. 项目概述:你的个人AI工作站 如果你正在寻找一个能真正为你所用、在你掌控之下的AI助手,而不是一个用完即走的聊天机器人,那么CoPaw的出现,可能正是你等待已久的答案。简单来说,CoPaw是一个开源的、可私有化部署的“…...
ARM错误恢复中断机制与ERRERICR2寄存器详解
1. ARM错误恢复中断机制概述在ARM架构的可靠性、可用性和可维护性(RAS)系统中,错误恢复中断是实现硬件容错的关键机制。当处理器检测到可恢复的错误条件时,通过这套机制能够快速通知系统进行错误处理,而ERRERICR2寄存器…...
李跳跳真实好友5.0内测版发布,悄然找出删除你的微信好友[Android]
李跳跳真实好友是一款能够帮你找出删除你、拉黑你的微信好友的安卓应用,还可以为这部分微信好友添加备注,让你一眼识别删除你的和拉黑你的微信好友。注意:需要无障碍权限,进行模拟手机操作。李跳跳以跳过开屏广告著称,…...
近屿AI学:白天做运维,晚上学AI,两天入职
何屿(化名)白天还在做传统运维,晚上已经开始补AI课程。听起来有点折腾,但他比谁都清楚,稳定并不等于安全。AI兴起后,岗位要求正在变,旧经验能撑多久,他心里没底。与其等到被动调整&a…...
科研人员实用:OpenClaw批量下载文献、整理参考文献格式,自动生成论文引用列表
科研利器:OpenClaw——自动化文献下载、格式整理与引用列表生成实战指南摘要 在科研工作中,文献的收集、管理与引用是耗时耗力的关键环节。面对海量的学术资源,如何高效地批量下载所需文献、规范整理参考文献格式、并快速生成符合要求的论文引…...
