NLP_Python3——樸素貝葉斯算法

1.貝葉斯公式:

P(Y|X)=P(X|Y)P(Y)/P(X)

推導公式:

P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y)

P(Y)爲先驗概率,即X發生前對Y發生的概率的一個判斷(可通過大量樣本統計出來);P(Y|X)爲後驗概率,即在X發生後,對Y發生的概率的重新評估;P(Y,X)爲聯合概率,即XY都發生的概率;P(Y|X)P(X)爲可能性函數,這是一個調整因子,使得預估概率更接近真實概率。 

所以條件概率可以理解爲:後驗概率= 先驗概率 * 可能性函數,此公式成立的前提條件是各事件能否發生是統計獨立的,若各事件能否發生之間有關聯則會形成誤差,關聯越緊密誤差越大。

若“可能性函數”>1,意味着“先驗概率”被增強,事件Y的發生的可能性變大

若“可能性函數”=1,意味着X無助於判斷Y的可能性

若“可能性函數”<1,意味着“先驗概率”被削弱,事件Y的發生的可能性變小

在機器學習的視角,將X理解爲"特徵",Y理解爲“類別(標籤)”貝葉斯公式變爲如下格式:

P(“甲標籤”|“A特徵”) = P("A特徵"|"甲標籤")P("甲標籤")/P("A特徵")

先驗概率爲:P("甲標籤")

後驗概率爲:P(“甲標籤”|“A特徵”)

肯能行函數爲:P(“甲標籤”|“A特徵”)

2.樸素貝葉斯:加上條件獨立假設的貝葉斯方法就是樸素貝葉斯方法(Naive Bayes);樸素貝葉斯失去了詞語之間的順序信息,就相當於把所有詞語扔到一個袋子裏充分混合,完全不管他們之間的順序關係,這種模型稱爲詞袋模型。在條件獨立假設的情況下,“他愛她”和“她愛他”就可以當做一個意思了(嗯,沒毛病,世上再也沒有單身狗了ヾ§  ̄▽)ゞ2333333)。

通常狀態下,我們不會把整段的自然語言作爲特徵來進行計算(中文博大精深,相同的一句話往往有很多種表達方式,所以用句子來做特徵會發現幾乎沒有能完全匹配的結果),而是將該句子進行分詞,將分詞結果當作特徵用於計算,在這時往往會出現詞語重複的情況,處理這種情況一般有以下三種模型:

    2.1多項式模型:若考慮重複詞語的情況,即重複的詞語視爲其出現多次,直接按照條件獨立假設的方式推導會發現該詞語出現的概率進行了多次相乘,即出現n次那它的概率就需要乘n次,進而可以轉換成它的n次方,因此稱此模型爲多項式模型。

    2.2伯努利模型(二項獨立模型):將重複的詞語視爲其只出現一次,但是因爲丟失了詞頻信息,所以效果會差一些。

    2.3混合模型:在計算句子概率時不考慮重複詞語出現次數,在計算詞語的概率時需要考慮詞語的出現次數。

3.平滑處理技術:樸素貝葉斯方法面對概率爲0的情況是很常見的,因爲很可能會碰到訓練集覆蓋不到的詞語,出現這種情況的本質還是因爲樣本數量太少,計算出來的概率失真。對於這種情況,都是給未出現在訓練集中的詞語一個估計的概率,而相應的調低其他已經出現的詞語的概率。平滑技術是因爲數據集太小而產生的現實需求,如果數據集足夠大,平滑技術對結果的影響將會變小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章