您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“python中伯努利分布的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python中伯努利分布的示例分析”這篇文章吧。
伯努利分布 是一種離散分布,有兩種可能的結果。1表示成功,出現的概率為p(其中0<p<1)。0表示失敗,出現的概率為q=1-p。這種分布在人工智能里很有用,比如你問機器今天某飛機是否起飛了,它的回復就是Yes或No,非常明確,這個分布在分類算法里使用比較多,因此在這里先學習 一下。
概率分布有兩種類型:離散(discrete)概率分布和連續(continuous)概率分布。
離散概率分布也稱為概率質量函數(probability mass function)。離散概率分布的例子有伯努利分布(Bernoulli distribution)、二項分布(binomial distribution)、泊松分布(Poisson distribution)和幾何分布(geometric distribution)等。
連續概率分布也稱為概率密度函數(probability density function),它們是具有連續取值(例如一條實線上的值)的函數。正態分布(normal distribution)、指數分布(exponential distribution)和β分布(beta distribution)等都屬于連續概率分布。
from scipy.stats import binom #導入伯努利分布 import matplotlib.pyplot as plt import numpy as np #次數 n = 10 #概率 p = 0.3 #導入特征系數 k = np.arange(0, 21) #伯努利分布的特征值導入 binomial = binom.pmf(k, n, p) plt.plot(k, binomial, 'o-') plt.title('Binomial: n = %i, p=%0.2f' % (n, p), fontsize=15) plt.xlabel('Number of successes') plt.ylabel('Probability of sucesses', fontsize=15) plt.savefig(r'C:\Users\Administrator\Desktop\106\data\textdata\12.png') plt.show()
二項分布:離散型概率分布,n 重伯努利分布
如果隨機變量序列 Xn(n=1, 2, …) 中的隨機變量均服從與參數為 p 的伯努利分布,那么隨機變量序列 Xn 就形成了參數為 p 的 n 重伯努利試驗。例如,假定重復拋擲一枚均勻硬幣 n 次,如果在第 i 次拋擲中出現正面,令 Xi=1;如果出現反面,則令 Xi=0。那么,隨機變量 Xn(n=1, 2, …) 就形成了參數為 1/2 的 n 重伯努利試驗。
可見,n 重伯努利試驗需滿足下列條件:
每次試驗只有兩種結果,即 X=1,或 X=0
各次試驗中的事件互相獨立,且 X=1 和 X=0 的概率分別為 p(0<p<1) 和 q=1-p
n 重伯努利試驗的結果就是 n 重伯努利分布,即二項分布。反之,當 Xn(n=1) 時,二項分布的結果服從于伯努利分布。因為二項分布實際上是進行了 n 次的伯努利分布,所以二項分布的離散型隨機變量期望為 E(x)=np,方差為 D(x)=np(1-p) 。
需要注意的是,滿足二項分布的樣本空間有一個非常重要的性質,假設進行 n 次獨立試驗,滿足二項分布(每次試驗成功的概率為 p,失敗的概率為 1?p),那么成功的次數 X 就是一個參數為 n 和 p 的二項隨機變量,即滿足下述公式:
P(X=k) = C(n, k) * p^k * (1-p)^(n-k)
X=k,試驗 n 次,成功的次數恰好有 k 次的隨機變量(事件)
C(n, k),表示從集合 n 中取出 k 個元素的組合數,結果為 n!/(k!*(n-k)!)
例如,小明參加雅思考試,每次考試的通過率 1/3,不通過率為 q=2/3。如果小明連續參加考試 4 次,那么恰好有兩次通過的概率是多少?
解析:因為每次考試只有兩種結果,通過或不通過,符合條件 (1);每次考試結果互相獨立,且概率不變,符合條件 (2)。滿足二項分布樣本,代入公式求解得概率為:C(4, 2)*(1/2)^2*(2/3)^(4-2) ≈ 8/27
二項分布概率直方圖:
圖形特性:
當 p=q 時,圖形是對稱的
當 p≠q 時,圖形呈偏態,p<q 與 p>q 的偏斜方向相反
當 (n+1)p 不為整數時,二項概率 P(X=k) 在 k=(n+1)*p 時達到最大值
當 (n+1)p 為整數時,二項概率 P(X=k) 在 k=(n+1)*p 和 k=(n+1)*p-1 時達到最大值
NOTE:當 n 很大時,即使 p≠q,二項分布概率直方圖的偏態也會逐漸降低,最終成為正態分布。也就是說,二項分布的極限情形即為正態分布,故當 n 很大時,二項分布的概率可用正態分布的概率作為近似值。那么 n 需要多大才可謂之大呢?
一般規定,當 p<q 且 np≥5,或 p>q 且 nq≥5 時,這時的 n 就足夠大了,可以用正態分布的概率作為近似值。則正態分布參數 μ=np,σ^2=np(1-p) 。
二項分布:
from scipy.stats import binom import matplotlib.pyplot as plt import numpy as np fig,ax = plt.subplots(1,1) n = 100 p = 0.5 #平均值, 方差, 偏度, 峰度 mean,var,skew,kurt=binom.stats(n,p,moments='mvsk') print(mean,var,skew,kurt) #ppf:累積分布函數的反函數。q=0.01時,ppf就是p(X<x)=0.01時的x值。 x=np.arange(binom.ppf(0.01,n,p),binom.ppf(0.99,n,p)) ax.plot(x,binom.pmf(x,n,p),'o') plt.rcParams['font.sans-serif']=['SimHei'] plt.title(u'二項分布概率質量函數') plt.savefig(r'C:\Users\Administrator\Desktop\106\data\textdata\1.png') plt.show()
補充拓展:python--scipy--1離散概率分布:伯努利分布
#導入包 #數組包 import numpy as np #繪圖包 import matplotlib.pyplot as plt #統計計算包的統計模塊 from scipy import stats ''' arange用于生成一個等差數組,arange([start, ]stop, [step, ] 使用見文檔:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html ''' ''' 第1步,定義隨機變量:1次拋硬幣 成功指正面朝上記錄為1,失敗指反面朝上記錄為0 ''' X = np.arange(0, 2,1) X
array([0, 1])
''' 伯努利分布官方使用文檔: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.bernoulli.html#scipy.stats.bernoulli ''' #第2步,#求對應分布的概率:概率質量函數 (PMF) #它返回一個列表,列表中每個元素表示隨機變量中對應值的概率 p = 0.5 # 硬幣朝上的概率 pList = stats.bernoulli.pmf(X, p) pList
array([0.5, 0.5])
#第3步,繪圖 ''' plot默認繪制折線,這里我們只繪制點,所以傳入下面的參數: marker:點的形狀,值o表示點為圓圈標記(circle marker) linestyle:線條的形狀,值None表示不顯示連接各個點的折線 ''' plt.plot(X, pList, marker='o',linestyle='None') ''' vlines用于繪制豎直線(vertical lines), 參數說明:vline(x坐標值, y坐標最小值, y坐標值最大值) 我們傳入的X是一個數組,是給數組中的每個x坐標值繪制豎直線, 豎直線y坐標最小值是0,y坐標值最大值是對應pList中的值 官網文檔:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines ''' plt.rcParams['font.sans-serif']=['SimHei'] plt.vlines(X, 0, pList) #x軸文本 plt.xlabel('隨機變量:拋硬幣1次') #y軸文本 plt.ylabel('概率') #標題 plt.title('伯努利分布:p=%.2f' % p) #顯示圖形 plt.show()
以上是“python中伯努利分布的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。