貝葉斯
1. 貝葉斯簡(jiǎn)介
- 貝葉斯Thomas Bayes,英國(guó)數(shù)學(xué)家
- 貝葉斯方法源于他生前為解決一個(gè)“逆概”問題寫的一篇文章。
- 貝葉斯要解決的問題:
- 正向概率:假設(shè)袋子里面有N個(gè)白球,M個(gè)黑球,你伸手進(jìn)去摸一把,摸出黑球的概率有多大?
- 黑球數(shù)量/總球數(shù)量
- 逆向概率:如果我們事先不知道袋子里黑白球的比例,而是閉著眼睛摸出一個(gè)(好幾個(gè))球,觀察這些取出來的球的顏色之后,那么我們可以就此對(duì)袋子里面的黑白球的比例作出什么樣的推測(cè)。
- 正向概率:假設(shè)袋子里面有N個(gè)白球,M個(gè)黑球,你伸手進(jìn)去摸一把,摸出黑球的概率有多大?
- 為什么使用貝葉斯?
- 現(xiàn)實(shí)世界本身就是不確定的,人類的觀察能力是有局限性的
- 我們?nèi)粘K^察到的只是事物表面上的結(jié)果,因此我們需要提供一個(gè)猜測(cè)。
2. 貝葉斯推導(dǎo)實(shí)例
有個(gè)學(xué)校,男生占60%,女生占40%。男生總是穿長(zhǎng)褲,女生一半穿長(zhǎng)褲一半穿褲子。
- 正向概率:隨機(jī)選擇一個(gè)學(xué)生,他(她)穿長(zhǎng)褲的概率和穿裙子的概率是多大
- 逆向概率:迎面走來一個(gè)學(xué)生,你能夠看的見他(她)穿的是否是長(zhǎng)褲,而無法確定性別,你能夠推斷出他(她)是女生的概率是多大?
- 求解穿長(zhǎng)褲的人里面有多少女生
- 假設(shè)學(xué)校里面總?cè)藬?shù)是U個(gè)
- 穿長(zhǎng)褲的男生:U * P(Boy) * P(Pants|Boy)
- P(Boy)是男生的概率=60%
- P(Pants|Boy)是條件概率,即在Boy這個(gè)條件下穿長(zhǎng)褲的概率是多大,這里是100%,因?yàn)樗心猩即╅L(zhǎng)褲。
- 穿長(zhǎng)褲的女生:U * P(Girl) * P(Pants|Girl)
- 穿長(zhǎng)褲總數(shù):U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)
- P(Girl|Pants) = U * P(Girl) * P(Pants|Girl)/穿長(zhǎng)褲總數(shù)
- 化簡(jiǎn)后: P(Girl|Pants) = P(Girl) * P(Pants|Girl)/P(Boy) * P(Pants|Boy) + P(Girl) * P(Pants|Girl)
- 化簡(jiǎn)后發(fā)現(xiàn)與校園內(nèi)的總數(shù)無關(guān),可以消去。
- 分母其實(shí)就是P(Pants)
- 分子其實(shí)就是P(Pants,Girl)
-
貝葉斯公式:貝葉斯公式
3. 拼寫糾正實(shí)例
問題是我們看到用戶輸入了一個(gè)不在字典中的單詞,我們需要去擦測(cè)用戶真正想輸入的單詞是什么?
- P(我們擦測(cè)它輸入的單詞|他實(shí)際輸入的單詞)
- 用戶實(shí)際輸入的單詞記為D
猜測(cè)1:P(h1|D),猜測(cè)2:P(h2|D),猜測(cè)3:P(h3|D)...統(tǒng)一為:P(h|D)
-
P(h|D)=P(h)*P(D|h)/P(D)
- P(h):代表猜測(cè)的詞在字典中出現(xiàn)的概率,比如語料庫(kù)中有10000個(gè)詞(有重復(fù)),the出現(xiàn)5000次,那么P(the)=5000/10000。P(h)其實(shí)是一個(gè)先驗(yàn)概率,拿到數(shù)據(jù)之后,可以事先統(tǒng)計(jì)好。
- P(D|h):想輸一個(gè)詞,輸錯(cuò)的概率。比如,D:tha,h:the,P(D|h)表示想輸入the,輸?shù)氖莟ha的概率有多大。
對(duì)于具體的不同的猜測(cè)h1,h2,h3...,P(D)都是一樣的,所以在比較P(h1|D)和P(h2|D)的時(shí)候我們可以忽略這個(gè)常數(shù)
-
P(h|D) 正比于 P(h)*P(D|h)
對(duì)于給定的觀測(cè)數(shù)據(jù),一個(gè)猜測(cè)的是好是壞取決于“這個(gè)猜測(cè)先驗(yàn)概率的大小”和“這個(gè)猜測(cè)生成我們觀測(cè)到的數(shù)據(jù)的可能性大?。╰he寫成tha的概率大小)”。
- 貝葉斯方法計(jì)算:P(h)*P(D|h),P(h)是特定猜測(cè)的先驗(yàn)概率
- 比如用戶輸入tlp,那到底是top還是tip呢?這個(gè)時(shí)候,當(dāng)最大似然估計(jì)不能做出判斷時(shí),先驗(yàn)概率就可以插手進(jìn)來給出指示——top出現(xiàn)的程度要高許多,所以更可能輸入的是top。
4. 垃圾郵件過濾實(shí)例
問題:給定一封郵件,判定它是否屬于垃圾郵件,D表示這封郵件,D由N個(gè)單詞組成。用h+來表示垃圾郵件,h-表示正常郵件。
- P(h+|D)=P(h+) * P(D|h+)/P(D)
- P(h-|D)=P(h-) * P(D|h-)/P(D)
- P(h+)和P(h-)這兩個(gè)先驗(yàn)概率都是很容易求出來的,要計(jì)算一個(gè)郵件庫(kù)里面垃圾郵件和正常郵件的比例就行了。
- D里面含有N個(gè)單詞d1,d2,d3...,P(D|h+)=P(d1,d2,...,dn|h+)
- P(d1,d2,...,dn|h+)就是說在垃圾郵件當(dāng)中出現(xiàn)跟我們這封郵件一模一樣的一封郵件的概率是多大!(可想而知,一模一樣的概率會(huì)非常小,但是我們判定為垃圾郵件不一定要一模一樣,大致相同就認(rèn)為是垃圾郵件了。)
- P(d1,d2,...,dn|h+)擴(kuò)展為:P(d1|h+) * P(d2|d1,h+) * P(d3|d2,d1,h+) * ...
- 把原始貝葉斯轉(zhuǎn)換為樸素貝葉斯。假設(shè)di與di-1是完全條件無關(guān)的(樸素貝葉斯假設(shè)特征之間是獨(dú)立的,互不影響。)
- 簡(jiǎn)化為:P(d1|h+) * P(d2|h+) * P(d3|h+) * ...
- 對(duì)于P(d1|h+) * P(d2|h+) * P(d3|h+) * ... 只要統(tǒng)計(jì)di這個(gè)單詞在垃圾郵件中出現(xiàn)的頻率即可。
