多項分布模擬及 Seaborn 可視化教程

多項分布

簡介

多項分布是二項分布的推廣,它描述了在 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 npdata = 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,關注后即可獲取最新文章推送

看完如果覺得有幫助,歡迎點贊、收藏、關注

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21834.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21834.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21834.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nginx的Location匹配與Rewrite重寫

目錄 一.Nginx中location與rewrite 1.Nginx中常用正則表達式 2.location與rewrite的聯系和區別 二.location概述 1.分類 2.匹配規則 3.優先級 4.示例 三.rewrite概述 1.rewrite功能 2.rewrite執行順序 3.跳轉實現 4.語法格式 5.示例 5.1.基于域名的跳轉 5.2.基…

四、利用啟發式算法進行特定數據集的殘差網絡結構搜索【框架+源碼】

背景:工作之后干的事情跟算法關聯甚少,整理下讀書期間的負責和參與的work,再熟悉學習下。 邊熟悉邊整理嘍~ CV Tradictional workCV AI based work機械臂視覺抓取項目機器學習全流程 Pipeline訓練平臺OCR生產線噴碼識別三維重建(SfM)ROS機器人…

C++的vector使用優化

我們在上一章說了如何使用這個vector動態數組,這章我們說說如何更好的使用它以及它是如何工作的。當你創建一個vector,然后使用push_back添加元素,當當前的vector的內存不夠時,會從內存中的舊位置復制到內存中的新位置&#xff0c…

Spring 之 Lifecycle 及 SmartLifecycle

最近在看Eureka源碼,本想快速解決這場沒有硝煙的戰役,不曾想阻塞性問題一個接一個。為正確理解這個框架,我不得不耐著性子,慢慢梳理這些讓人困惑的點。譬如本章要梳理的Lifecycle和SmartLifecycle。它們均為接口,其中后…

mysql的鎖(全局鎖)

文章目錄 mysql按照鎖的粒度分類全局鎖概念:全局鎖使用場景:全局鎖備份案例: mysql按照鎖的粒度分類 全局鎖 概念: 全局鎖就是對整個數據庫實例加鎖。MySQL 提供了一個加全局讀鎖的方法,命令是: Flush tables with…

java —— 文件的創建、刪除、查詢和重命名

文件的相關操作通過 File 類并引入路徑來實現,這里對文件的操作只是對文件本身的增、刪、查等,不包括對文件內容的修改。 一、創建文件/文件夾 public static void main(String[] args) {//創建文件File file1new File("D:\\android\\test\\a.jpg…

vue封裝url驗證方法

vue封裝url驗證方法 在 Vue 中,你可以封裝一個 URL 驗證的方法來驗證給定的 URL 是否有效。以下是一個示例代碼: export const validateUrl (url) > {const regex /^(https?:\/\/)?([\da-z.-])\.([a-z.]{2,6})([/\w .-]*)*/;return regex.test(…

排序算法——歸并排序以及非遞歸實現

一、歸并排序思想 歸并排序(MERGE-SORT)是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法(Divide andConquer)的一個非常典型的應用。將已有序的子序列合并,得到完全有序的序列;即先使每個子序列…

OkHttp,一個賊牛的Java工具包

在當今的網絡應用開發中,Java 作為一種成熟的編程語言,廣泛應用于服務器端和客戶端的開發。網絡請求作為應用開發中不可或缺的一部分,選擇一個高效、穩定的網絡庫尤為重要。OkHttp 就是這樣一款優秀的網絡庫,它為Java提供了簡單易用、功能強大的網絡請求能力。本文將向讀者…

關于編譯的一些思路和猜想

一、編譯原理的難度 編譯原理特別復雜,研究的是高級語言如何翻譯成匯編語言的過程。 二、編譯過程中一些思路 (一)語義識別的作用 語義識別指的是把一些無關字符忽略,把一些變量名保存在一起,把用空格隔開的關鍵字單獨放一起。 例如&#…

重新ysyx

一、克隆倉庫 1.創建ssh key ssh-keygen -t rsa cd ~/.ssh ls 查看里面是否有id_rsa id_rsa.pub ssh-keygen -t rsa -C "xiantong15834753336outlook.com" cat id_rsa.pub***********查看里面的內容,復制到下圖中綠色的按鈕 git init ssh -T g…

spark3.0.1版本查詢Hbase數據庫例子

需求背景 現有需求,需要采用spark查詢hbase數據庫的數據同步到中間分析庫,記錄spark集成hbase的簡單例子代碼 import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.client.{ConnectionFactory, Scan} import org.apach…

Marin說PCB之Max parallel知多少?

今天是個陽光明媚,萬里烏云的好日子。小編我一如既往地到家打開電腦準備看騰訊視頻的五十公里桃花塢的第四季,在看到汪蘇瀧汪臺說650電臺要解散的時候小編我差點也哭了。650電臺之于桃花塢就像樂隊的鼓手一樣,都是一個團隊的靈感啊&#xff0…

CSS中的長度單位詳解

在CSS中,長度單位是定義元素尺寸、間距、邊距等的重要工具。不同的長度單位具有不同的特性和使用場景。 絕對長度單位 絕對長度單位在所有設備和瀏覽器中表示相同的長度。這些單位包括: 1.像素(px) 像素是最常用的長度單位。一…

C語言分支和循環(2)

我的相關博客: C語言的分支與循環(1) 1.switch語句 除了 if 語句外,C語?還提供了 switch 語句來實現分?結構。 switch 語句是?種特殊形式的 的 if...else 結構,?于判斷條件有多個結果的情況。它把多重 else if…

非質量成本總結

非質量成本 非質量成本 定義 舉例 固定成本 不隨生產量或工作量變動而變動的成本 辦公室租賃費 可變成本 隨著生產量或工作變動而變動的成本 材料費 直接成本 可以直接計入某項目的成本 工人工資 間接成本 不能直接計入某項目而需要再幾個項目之間或在項目與職能部…

Linux基本指令3

Linux基本指令3 目錄 Linux基本指令3 一、Linux文件系統管理 二、Linux進程與服務管理

億發:制造型企業信息化規劃——從破冰到全面落地

在制造型企業中,信息化規劃的落地是一個復雜而關鍵的過程。盡管規劃和藍圖可能已經制定完畢,但如何成功地實施信息化才是關鍵所在。本文將詳細介紹制造型企業信息化規劃的落地過程,通過三個周期逐步推進,最終實現信息化與自動化的…

深度學習知識與心得

目錄 深度學習簡介 傳統機器學習 深度學習發展 感知機 前饋神經網絡 前饋神經網絡(BP網絡) 深度學習框架講解 深度學習框架 TensorFlow 一個簡單的線性函數擬合過程 卷積神經網絡CNN(計算機視覺) 自然語言處理NLP Wo…

OpenAI助手API接入-問答對自動生成

支持GPT-3.5-Turbo, GPT-4o, GPT-4-Turbo import json import openai from pathlib import Path import os client openai.OpenAI(base_urlbase_url, api_keyapi_key) file client.files.create( fileopen("H3.pdf", "rb"), purposeassistants ) …