貝葉斯景象

一干毅、理論篇

總所周知宜猜,概率界分為兩大學派,一是頻率派硝逢,二是貝葉斯派姨拥。如果用一句話來陳述它們的核心區(qū)別,我傾向于這樣講渠鸽,“頻率派:概率是事件在長時間內發(fā)生的頻率叫乌;貝葉斯派:概率可以解釋為我們對一件事情發(fā)生的相信程度(信心)』崭浚”憨奸,通俗來講,前者需大量的事件凿试,看發(fā)生的次數排宰,后者針對某一件事似芝,我們對它發(fā)不發(fā)生有多大的信心茂腥。

這周在學習貝葉斯,正好還看了點吳軍的《數學之美》礁苗,前幾章大多涉及到貝葉斯桑逝、馬爾科夫鏈在翻譯、語音識別等方向的應用乓梨,深入淺出,看得真是不亦樂乎。

話不多說傲醉,上公式:

貝葉斯公式

這就是大名鼎鼎的貝葉斯公式。

P(A):什么都不知道呻率,發(fā)生A的概率硬毕。通常稱為先驗概率。

P(A|X):在已知X發(fā)生的前提下礼仗,發(fā)生A的概率吐咳。我們已經有了X的證據了,再來推斷A發(fā)生的概率元践,通常稱為后驗概率韭脊。

有什么用呢?

先驗和后驗单旁,可以說就是貝葉斯的核心所在了沪羔。

舉個例子吧,通常來講象浑,一個班級學生的成績符合正態(tài)分布蔫饰,這個“正態(tài)分布”就是先驗:我什么數據、樣本愉豺、證據都沒有篓吁,我不清楚班上有多少人、不清楚哪怕其中一個人的成績蚪拦,得出的事件A杖剪。

正態(tài)分布有兩個參數,平均數u和標準差std外盯,我們知道一個班的成績符合正態(tài)分布摘盆,但是是一個怎樣的正態(tài)分布就不知道了。于是我們需要樣本---各個學生的成績饱苟,事件X孩擂,在有了X的情況下,我們獲得的事件A才有意義箱熬。這個明確參數的“正態(tài)分布”就是后驗:不僅知道它是正態(tài)分布类垦,而且知道它是怎樣的一個正態(tài)分布狈邑,得出事件P(A|X),在X的條件下A的情況蚤认。

這也符合我們日常的思考邏輯:在信息缺少的情況下米苹,先估摸著得到一個模子,然后不斷的從外界獲取信息砰琢,打磨之前的模子蘸嘶,信息獲得的越多越準,模子自然就越精美陪汽。

再舉個生動點的例子训唱,假如我們現在想對兩個參數為lambda1,lambda2的泊松分布進行估計(記住:我們的目的是估計lambda)挚冤,一開始我們什么都不知道况增,假設兩種情況(兩種先驗):一、lambda符合均勻分布训挡;二澳骤、lambda符合指數分布,下圖圖一(1)澜薄、圖一(2)是先驗概率的直觀圖为肮,顏色越深代表概率越大(越有可能發(fā)生),顯然平均分布在整個空間上每處的概率一致表悬,處處顏色相等弥锄,指數分布在靠近0的位置顏色要深些。

上面是先驗蟆沫,搞定了籽暇。為弄后驗,我們需要樣本饭庞,就自己生成些樣本罷:因為有兩個參數lambda1,lambda2戒悠,要成兩組樣本,第一組樣本A1由lambda1=1的泊松分布隨機生成舟山,第二組樣本A2由lambda2=3的泊松分布隨機生成绸狐。

有了A1,A2兩組樣本,我們就可以用他們來估計lambda1,lambda2了(事先我們是不知道A1,A2兩組樣本是符合lambda1=1,lambda2=3的泊松分布的累盗,在這里為了模擬寒矿,用它來生成模擬數據A1,A2的)。

從直觀圖可以看出若债,當樣本數N=1時符相,對原來的先驗空間產生影響,估計值處在真實值lambda1=1,lambda2=3的很大一篇范圍內,也就是說啊终,一個樣本不足以估計lambda镜豹。

圖一,樣本數N=1

N=5蓝牲,可以看出趟脂,估計值在(1,3)這個真實值點的估計范圍在縮小。

圖二例衍,樣本數N=5

N=20,50就更小了昔期,這個時候可以估計真實值大概在(1,3)附近

圖三,樣本數N=20
圖四肄渗,樣本數N=50

N=100镇眷,有了100組樣本點咬最,可以說基本就敢斷定真實值就在(1,3)了


圖五翎嫡,樣本數N=100

總結:

先驗為均勻分布或指數分布,但參數不可知永乌』笊辏可通過一系列的樣本,來不斷的估計參數值翅雏,得到后驗圈驼。

二、應用篇

import scipy.stats as stats

import numpy as np

from IPython.core.pylabtools import figsize

from matplotlib import pyplot as plt

from matplotlib.pyplot import jet

plt.rcParams['font.sans-serif']=['SimHei']#解約matplotlib畫圖望几,中文亂碼問題

N=100#樣本數

#為產生模擬數據的參數

lambda_1_true = 1

lambda_2_true = 3

#產生poisson分布的兩組樣本绩脆,參數分別是lambda_1_true,lambda_2_true

data = np.concatenate([

stats.poisson.rvs(lambda_1_true,size=(N,1)),

stats.poisson.rvs(lambda_2_true,size=(N,1))

],axis=1)

# print (data)

x = y = np.linspace(.01,5,100)

#pmf:概率質量函數橄抹,代表某個點符合poisson的概率大小

likelihood_x =np.array([stats.poisson.pmf(data[:,0],_x)

for _x inx]).prod(axis=1)

likelihood_y =np.array([stats.poisson.pmf(data[:,1],_y)

for _y iny]).prod(axis=1)

L =np.dot(likelihood_x[:,None],likelihood_y[None,:])

# print(likelihood_x)

# print(likelihood_y)

figsize(12.5,12)

#pdf:概率密度函數靴迫,在x,y上分別生成兩組均勻分布的概率密度

uni_x = stats.uniform.pdf(x,loc=0,scale=5)

uni_y = stats.uniform.pdf(y,loc=0,scale=5)

Mu = np.dot(uni_x[:,None],uni_y[None,:])

#pdf:概率密度函數楼誓,在x玉锌,y上分別生成兩組指數分布的概率密度

exp_x = stats.expon.pdf(x,loc=0,scale=3)

exp_y = stats.expon.pdf(y,loc=0,scale=10)

Me = np.dot(exp_x[:,None],exp_y[None,:])

#第一個圖:均分分布

plt.subplot(221)

im = plt.imshow(Mu, interpolation='none',origin='lower', vmax=1, vmin=-.15, extent=(0,5,0,5))

plt.scatter(lambda_2_true,lambda_1_true,c='k',s=50,edgecolors='none')

plt.xlim(0,5)

plt.ylim(0,5)

plt.title('(1)均勻分布,先驗概率直觀圖')

#第二個圖:參數為lambda的poisson分布疟羹,lambda為均勻分布

plt.subplot(223)

plt.contour(x, y, Mu*L)

im = plt.imshow(Mu*L, interpolation='none',origin='lower', extent=(0,5,0,5))

plt.scatter(lambda_2_true,lambda_1_true,c='k',s=50,edgecolors='none')

plt.xlim(0,5)

plt.ylim(0,5)

plt.title('(3)均勻分布主守,后驗概率直觀圖')

#第三個圖:指數分布

plt.subplot(222)

plt.contour(x, y, Me)

im = plt.imshow(Me, interpolation='none',origin='lower', extent=(0,5,0,5))

plt.scatter(lambda_2_true,lambda_1_true,c='k',s=50,edgecolors='none')

plt.xlim(0,5)

plt.ylim(0,5)

plt.title('(2)指數分布,先驗概率直觀圖')

#第三個圖:參數為lambda的poisson分布榄融,lambda為指數分布

plt.subplot(224)

plt.contour(x, y, Me*L)

im = plt.imshow(Me*L, interpolation='none',origin='lower', extent=(0,5,0,5))

plt.scatter(lambda_2_true,lambda_1_true,c='k',s=50,edgecolors='none')

plt.xlim(0,5)

plt.ylim(0,5)

plt.title('(4)指數分布参淫,后驗概率直觀圖')

plt.set_cmap('jet')

plt.show()

參考:《貝葉斯方法-概率編程與貝葉斯推斷》

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市愧杯,隨后出現的幾起案子涎才,更是在濱河造成了極大的恐慌,老刑警劉巖民效,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憔维,死亡現場離奇詭異涛救,居然都是意外死亡,警方通過查閱死者的電腦和手機业扒,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門检吆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人程储,你說我怎么就攤上這事蹭沛。” “怎么了章鲤?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵摊灭,是天一觀的道長。 經常有香客問我败徊,道長帚呼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任皱蹦,我火速辦了婚禮煤杀,結果婚禮上,老公的妹妹穿的比我還像新娘沪哺。我一直安慰自己沈自,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布辜妓。 她就那樣靜靜地躺著枯途,像睡著了一般。 火紅的嫁衣襯著肌膚如雪籍滴。 梳的紋絲不亂的頭發(fā)上酪夷,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音异逐,去河邊找鬼捶索。 笑死,一個胖子當著我的面吹牛灰瞻,可吹牛的內容都是我干的腥例。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼酝润,長吁一口氣:“原來是場噩夢啊……” “哼燎竖!你這毒婦竟也來了?” 一聲冷哼從身側響起要销,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤构回,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體纤掸,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡脐供,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了借跪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片政己。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掏愁,靈堂內的尸體忽然破棺而出歇由,到底是詐尸還是另有隱情,我是刑警寧澤果港,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布沦泌,位于F島的核電站,受9級特大地震影響辛掠,放射性物質發(fā)生泄漏谢谦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一公浪、第九天 我趴在偏房一處隱蔽的房頂上張望他宛。 院中可真熱鬧,春花似錦欠气、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至袁梗,卻和暖如春宜鸯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背遮怜。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工淋袖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锯梁。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓即碗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陌凳。 傳聞我的和親對象是個殘疾皇子剥懒,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容