首页 > 其他分享 >多项分布模拟及 Seaborn 可视化教程

多项分布模拟及 Seaborn 可视化教程

时间:2024-06-03 20:44:53浏览次数:33  
标签:... 教程 结果 kk Seaborn 次数 k1 可视化 k2

多项分布

简介

多项分布是二项分布的推广,它描述了在 n 次独立试验中,k 种不同事件分别出现次数的离散概率分布。与二项分布只能有两种结果(例如成功/失败)不同,多项分布可以有 k 种(k ≥ 2)及以上的不同结果。

参数

多项分布用三个参数来定义:

n:试验次数,表示重复相同实验的次数。
pvals:一个长度为 k 的列表,其中每个元素表示对应结果出现的概率。pvals 的元素之和必须为 1。
size:输出数组的形状。

公式

多项分布的概率质量函数 (PMF) 给出了在 n 次试验中,k 种结果分别出现 k1、k2、...、kk 次的概率,计算公式为:

P(k1, k2, ..., kk) = n! / (k1! * k2! * ... * kk!) * (p1 ^ k1) * (p2 ^ k2) * ... * (pk ^ kk)

其中:

P(k1, k2, ..., kk):表示 k 种结果分别出现 k1、k2、...、kk 次的概率。
n!:n 的阶乘,即 n × (n - 1) × (n - 2) × ... × 2 × 1。
k1!k2!、...、kk!:k1、k2、...、kk 的阶乘,分别表示对应结果出现的次数的阶乘。
p1p2、...、pk:对应结果出现的概率,分别为 pvals 列表中的元素。

生成多项分布数据

NumPy 提供了 random.multinomial() 函数来生成服从多项分布的随机数。该函数接受以下参数:

n:试验次数。
pvals:结果的概率列表。
size:输出数组的形状。

示例:生成掷骰子 10 次的结果,其中每个结果出现的概率相等:

import numpy as np

data = np.random.multinomial(n=10, pvals=[1/6] 6, size=1000)
print(data)

可视化多项分布

由于多项分布可以表示多种结果的出现次数,因此其可视化方式通常取决于结果的个数和想要展示的信息。

条形图:如果结果个数较少,可以使用条形图来直观地显示每个结果出现的次数。
堆积条形图:如果结果个数较多,可以使用堆积条形图来显示不同试验次数下每个结果出现的次数分布。
折线图:如果需要比较不同试验次数下每个结果出现的概率分布,可以使用折线图来绘制每个结果出现的概率随试验次数的变化情况。

练习

  1. 模拟 100 次掷骰子的结果,并绘制每个结果出现的次数分布图。
  2. 比较不同试验次数下掷骰子结果的分布变化。
  3. 模拟一个具有 3 种结果的抽奖活动,每个结果出现的概率分别为 1/3、1/2 和 1/6,并计算每种结果出现 1 次的概率。

解决方案

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

# 1. 模拟掷骰子结果并绘制分布图
data = np.random.multinomial(n=10, pvals=[1/6] 6, size=1000)
result_counts = data.sum(axis=0)  # 计算每个结果出现的总次数
sns.barplot(x=np.arange(len(result_counts)), y=result_counts)
plt.xlabel("Result")
plt.ylabel("Count")
plt.title("Distribution of Dice Rolls (1000 trials)")
plt.show()

# 2. 比较不同试验次数下分布变化
n_values = [10, 50, 100, 500]
for n in n_values:
    data = np.random.multinomial(n=n, pvals=[1/6] 6, size=1000)
    result_counts = data.sum(axis=0)
    sns.barplot(x=np.arange(len))

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

标签:...,教程,结果,kk,Seaborn,次数,k1,可视化,k2
From: https://www.cnblogs.com/xiaowange/p/18229605

相关文章

  • 数据分享|python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGB
    全文链接:https://tecdat.cn/?p=34434原文出处:拓端数据部落公众号分析师:ShilinChen离职率是企业保留人才能力的体现。分析预测职员是否有离职趋向有利于企业的人才管理,提升组织职员的心理健康,从而更有利于企业未来的发展。解决方案任务/目标采用分类这一方法构建6种模型对职......
  • 音频分离教程:人声分离的5个方法,很实用!
    音频分离APP有哪些?哪个好用?在音频剪辑工作中,音频分离是一项非常重要且常见的功能,包括伴奏提取、人声提取。那么手机端都有哪些音频分离app好用呢?本文整理了以下5款音频分离APP,可以批量解决消除人声、消除背景音的问题,轻松提取需要的音频片段,一起来看看都有哪些吧!第一款、金......
  • PS系统教程09
    修复照片 修饰工具污点修复画笔工具(J)主要作用:去除一些污点或者不需要的【:缩小】:放大目标:去掉这两个点修复画笔工具也就是说我们要有取样点选择修复画笔工具按住Alt键吸取周边相近颜色松开单机修复地点为了效果我吸取的是牙齿的颜色。仿制图章工具与其作用一......
  • 国内首个开源网络流量可视化分析平台 -- 流影
    流影:基于流量的网络行为高级分析平台  流影是一款基于全流量的高级网络行为分析平台,该系统是由深海鱼(北京)科技有限公司流影项目组研发设计,首发开源是1.0版本。项目简介  深海鱼(北京)科技有限公司专注于为客户提供优质的数据分析相关服务,近年来立足于客户的数字安全需求,深耕......
  • ComfyUI 完全入门:ControlNet 使用教程
    大家好,我是每天分享AI应用的萤火君!今天继续给大家分享ComfyUI的入门必备技能:ControlNet。ControlNet提供了十几种生成图片的控制方式,有的可以控制画面的结构,有的可以控制人物的姿势,还有的可以控制图片的画风,这对于提高AI绘画的质量特别有用;基于ControlNet的能力,炼丹师们可......
  • 用docfx生成c#项目API的简洁教程
    1.下载docfx https://github.com/dotnet/docfx2.在环境变量的Path下面添加下载解压后docfx.exe的目录3.创建文档项目文件夹(名称如doc),位置最好是在解决方案文件夹,这样目录好配置,其它也方便。4.在doc文件夹运行cmd,或打开cmd,进入到doc文件夹5.运行docfxinit,然后根据提示......
  • 淘宝店铺全自动采集私信筛选脚本【采集脚本+使用教程】
    项目原理:利用智能脚本,我们可以高效地筛选出可能不活跃的店铺,并尝试通过与其互动来判断其真实状态。通过购买并监控这些店铺的商品,我们可以有效地识别出那些未能按照平台规定及时发货的店铺,并据此向平台申请补偿。设备与资源需求:一台运行Windows10系统的电脑。完整的软......
  • UDE使用教程
    1、UDE简介        PLSUDE是一款强大的软件调试工具,适用多种架构芯片,包括主流的英飞凌,恩智浦,瑞萨,ARM等,国内有紫光,云途等。实用起来感觉功能略逊于劳特巴赫,但是还是很强大。界面做的比劳特巴赫好,价格比劳特巴赫便宜。2、新建工程2.1新建workspace2.2选择Target......
  • 史上最全Docker教程,从容器发展史到实操(一)
    前言:今天我们所说的容器是一种IT技术。容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用装起来。这样,应用与应用之间就有了边界而不会相互干扰;同时装在沙盒里面的应用,也可以很方便的被搬来搬去,这也是PaaS想要的最理想的状态(可移植性,标准化,隔离性)......
  • iPhone网络抓包教程:运行tcpdump并在Wireshark进行网络抓包
    热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!! 1、安装Xcode,创建项目并连接至iPhone。2、iPhone连接至iMac,通过访达,获取iPhone的UDID。3、检查是否已安装rvictl。通常其随Xcode一起安装的:$whichrvictl/Library/Apple/usr/......