溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中伯努利分布的示例分析

發(fā)布時(shí)間:2021-06-08 11:53:34 來(lái)源:億速云 閱讀:442 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了“python中伯努利分布的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python中伯努利分布的示例分析”這篇文章吧。

伯努利分布 是一種離散分布,有兩種可能的結(jié)果。1表示成功,出現(xiàn)的概率為p(其中0<p<1)。0表示失敗,出現(xiàn)的概率為q=1-p。這種分布在人工智能里很有用,比如你問(wèn)機(jī)器今天某飛機(jī)是否起飛了,它的回復(fù)就是Yes或No,非常明確,這個(gè)分布在分類算法里使用比較多,因此在這里先學(xué)習(xí) 一下。

概率分布有兩種類型:離散(discrete)概率分布和連續(xù)(continuous)概率分布。

離散概率分布也稱為概率質(zhì)量函數(shù)(probability mass function)。離散概率分布的例子有伯努利分布(Bernoulli distribution)、二項(xiàng)分布(binomial distribution)、泊松分布(Poisson distribution)和幾何分布(geometric distribution)等。

連續(xù)概率分布也稱為概率密度函數(shù)(probability density function),它們是具有連續(xù)取值(例如一條實(shí)線上的值)的函數(shù)。正態(tài)分布(normal distribution)、指數(shù)分布(exponential distribution)和β分布(beta distribution)等都屬于連續(xù)概率分布。

from scipy.stats import binom #導(dǎo)入伯努利分布
import matplotlib.pyplot as plt
import numpy as np
#次數(shù)
n = 10
#概率
p = 0.3
#導(dǎo)入特征系數(shù)
k = np.arange(0, 21)
#伯努利分布的特征值導(dǎo)入
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()

二項(xiàng)分布:離散型概率分布,n 重伯努利分布

如果隨機(jī)變量序列 Xn(n=1, 2, …) 中的隨機(jī)變量均服從與參數(shù)為 p 的伯努利分布,那么隨機(jī)變量序列 Xn 就形成了參數(shù)為 p 的 n 重伯努利試驗(yàn)。例如,假定重復(fù)拋擲一枚均勻硬幣 n 次,如果在第 i 次拋擲中出現(xiàn)正面,令 Xi=1;如果出現(xiàn)反面,則令 Xi=0。那么,隨機(jī)變量 Xn(n=1, 2, …) 就形成了參數(shù)為 1/2 的 n 重伯努利試驗(yàn)。

可見(jiàn),n 重伯努利試驗(yàn)需滿足下列條件:

每次試驗(yàn)只有兩種結(jié)果,即 X=1,或 X=0

各次試驗(yàn)中的事件互相獨(dú)立,且 X=1 和 X=0 的概率分別為 p(0<p<1) 和 q=1-p

n 重伯努利試驗(yàn)的結(jié)果就是 n 重伯努利分布,即二項(xiàng)分布。反之,當(dāng) Xn(n=1) 時(shí),二項(xiàng)分布的結(jié)果服從于伯努利分布。因?yàn)槎?xiàng)分布實(shí)際上是進(jìn)行了 n 次的伯努利分布,所以二項(xiàng)分布的離散型隨機(jī)變量期望為 E(x)=np,方差為 D(x)=np(1-p) 。

需要注意的是,滿足二項(xiàng)分布的樣本空間有一個(gè)非常重要的性質(zhì),假設(shè)進(jìn)行 n 次獨(dú)立試驗(yàn),滿足二項(xiàng)分布(每次試驗(yàn)成功的概率為 p,失敗的概率為 1?p),那么成功的次數(shù) X 就是一個(gè)參數(shù)為 n 和 p 的二項(xiàng)隨機(jī)變量,即滿足下述公式:

P(X=k) = C(n, k) * p^k * (1-p)^(n-k)

X=k,試驗(yàn) n 次,成功的次數(shù)恰好有 k 次的隨機(jī)變量(事件)

C(n, k),表示從集合 n 中取出 k 個(gè)元素的組合數(shù),結(jié)果為 n!/(k!*(n-k)!)

例如,小明參加雅思考試,每次考試的通過(guò)率 1/3,不通過(guò)率為 q=2/3。如果小明連續(xù)參加考試 4 次,那么恰好有兩次通過(guò)的概率是多少?

解析:因?yàn)槊看慰荚囍挥袃煞N結(jié)果,通過(guò)或不通過(guò),符合條件 (1);每次考試結(jié)果互相獨(dú)立,且概率不變,符合條件 (2)。滿足二項(xiàng)分布樣本,代入公式求解得概率為:C(4, 2)*(1/2)^2*(2/3)^(4-2) ≈ 8/27

二項(xiàng)分布概率直方圖:

python中伯努利分布的示例分析

圖形特性:

當(dāng) p=q 時(shí),圖形是對(duì)稱的

當(dāng) p≠q 時(shí),圖形呈偏態(tài),p<q 與 p>q 的偏斜方向相反

當(dāng) (n+1)p 不為整數(shù)時(shí),二項(xiàng)概率 P(X=k) 在 k=(n+1)*p 時(shí)達(dá)到最大值

當(dāng) (n+1)p 為整數(shù)時(shí),二項(xiàng)概率 P(X=k) 在 k=(n+1)*p 和 k=(n+1)*p-1 時(shí)達(dá)到最大值

NOTE:當(dāng) n 很大時(shí),即使 p≠q,二項(xiàng)分布概率直方圖的偏態(tài)也會(huì)逐漸降低,最終成為正態(tài)分布。也就是說(shuō),二項(xiàng)分布的極限情形即為正態(tài)分布,故當(dāng) n 很大時(shí),二項(xiàng)分布的概率可用正態(tài)分布的概率作為近似值。那么 n 需要多大才可謂之大呢?

一般規(guī)定,當(dāng) p<q 且 np≥5,或 p>q 且 nq≥5 時(shí),這時(shí)的 n 就足夠大了,可以用正態(tài)分布的概率作為近似值。則正態(tài)分布參數(shù) μ=np,σ^2=np(1-p) 。

二項(xiàng)分布:

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:累積分布函數(shù)的反函數(shù)。q=0.01時(shí),ppf就是p(X<x)=0.01時(shí)的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'二項(xiàng)分布概率質(zhì)量函數(shù)')
plt.savefig(r'C:\Users\Administrator\Desktop\106\data\textdata\1.png')
plt.show()

補(bǔ)充拓展:python--scipy--1離散概率分布:伯努利分布

#導(dǎo)入包
#數(shù)組包
import numpy as np
#繪圖包
import matplotlib.pyplot as plt
#統(tǒng)計(jì)計(jì)算包的統(tǒng)計(jì)模塊
from scipy import stats
'''
arange用于生成一個(gè)等差數(shù)組,arange([start, ]stop, [step, ]
使用見(jiàn)文檔:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
'''

'''
第1步,定義隨機(jī)變量: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步,#求對(duì)應(yīng)分布的概率:概率質(zhì)量函數(shù) (PMF)
#它返回一個(gè)列表,列表中每個(gè)元素表示隨機(jī)變量中對(duì)應(yīng)值的概率
p = 0.5 # 硬幣朝上的概率
pList = stats.bernoulli.pmf(X, p)
pList

array([0.5, 0.5])

#第3步,繪圖
'''
plot默認(rèn)繪制折線,這里我們只繪制點(diǎn),所以傳入下面的參數(shù):
marker:點(diǎn)的形狀,值o表示點(diǎn)為圓圈標(biāo)記(circle marker)
linestyle:線條的形狀,值None表示不顯示連接各個(gè)點(diǎn)的折線
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于繪制豎直線(vertical lines),
參數(shù)說(shuō)明:vline(x坐標(biāo)值, y坐標(biāo)最小值, y坐標(biāo)值最大值)
我們傳入的X是一個(gè)數(shù)組,是給數(shù)組中的每個(gè)x坐標(biāo)值繪制豎直線,
豎直線y坐標(biāo)最小值是0,y坐標(biāo)值最大值是對(duì)應(yīng)pList中的值
官網(wǎng)文檔:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines
'''
plt.rcParams['font.sans-serif']=['SimHei'] 
plt.vlines(X, 0, pList)
#x軸文本
plt.xlabel('隨機(jī)變量:拋硬幣1次')
#y軸文本
plt.ylabel('概率')
#標(biāo)題
plt.title('伯努利分布:p=%.2f' % p)
#顯示圖形
plt.show()

python中伯努利分布的示例分析

以上是“python中伯努利分布的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI