熱線電話:13121318867

登錄
首頁精彩閱讀從樸素貝葉斯分類器到貝葉斯網絡
從樸素貝葉斯分類器到貝葉斯網絡
2017-03-18
收藏

樸素貝葉斯分類器到貝葉斯網絡

一、貝葉斯公式(一些必備的數學基礎)

貝葉斯(Thomas Bayes)是生活在十八世紀的一名英國牧師和數學家。因為歷史久遠,加之他沒有太多的著述留存,今天的人們對貝葉斯的研究所知甚少。唯一知道的是,他提出了概率論中的貝葉斯公式。但從他曾經當選英國皇家科學學會會員(類似于院士)來看,他的研究工作在當時的英國學術界已然受到了普遍的認可。

事實上,在很長一段時間里,人們都沒有注意到貝葉斯公式所潛藏的巨大價值。直到二十世紀人工智能、機器學習等嶄新學術領域的出現,人們才從一堆早已蒙灰的數學公式中發現了貝葉斯公式的巨大威力。為了方便后續內容的介紹,這里我們先來簡單復習一下概率論中的一些基本知識。

事件A在另外一個事件B已經發生條件下的發生概率,稱為條件概率,記為P(A|B)。

兩個事件共同發生的概率稱為聯合概率。A與B的聯合概率表示為 P(AB) 或者P(A,B)。

進而有,P(AB) = P(B)P(A|B)=P(A)=P(B|A)。這也就導出了最簡單形式的貝葉斯公式,即

P(A|B)=P(B|A)*P(A)/P(B)

以及條件概率的鏈式法則

P(A1,A2,...,An) = P(An|A1,A2,...,An-1)P(An-1|A1,A2,...,An-2)...P(A2|A1)P(A1)

概率論中還有一個全概率公式

由此可進一步導出完整的貝葉斯公式

二、樸素貝葉斯分類器(Na?ve Baysian classifier)

分類是機器學習數據挖掘中最基礎的一種工作。假設現在我們一組訓練元組(Training tuples),或稱訓練樣例,以及與之相對應的分類標簽(Class labels)。每個元組都被表示成n維屬性向量X=(x1, x2, ..., xn)的形式,而且一共有K個類,標簽分別為C1, C2, ..., Ck。分類的目的是當給定一個元組X時,模型可以預測其應當歸屬于哪個類別。

樸素貝葉斯分類器的原理非常簡單,就是基于貝葉斯公式進行推理,所以才叫做“樸素”。對于每一個類別Ci, 利用貝葉斯公式來估計在給定訓練元組X時的條件概率p(Ci|X),即

P(Ci|X) = P(X|Ci)P(Ci)/P(X)

當且僅當概率P(Ci|X)在所有的P(Ck|X)中取值最大時,就認為X屬于Ci。更進一步,因為P(X)對于所有的類別來說都是恒定的,所以其實只需要P(Ci|X) = P(X|Ci)P(Ci)最大化即可。

應用樸素貝葉斯分類器時必須滿足條件:所有的屬性都是條件獨立的。也就是說,在給定條件的情況下,屬性之間是沒有依賴關系的。即

為了演示貝葉斯分類器,來看下面這個例子。我們通過是否頭疼、咽痛、咳嗽以及體溫高低來預測一個人是普通感冒還是流感。

上面是我們提供的訓練數據?,F在有一個病人到診所看病,他的癥狀是:severeheadache,  no soreness, normaltemperature and with cough。請問他患的是普通感冒還是流感?分析易知,這里的分類標簽有Flu 和Cold兩種。于是最終要計算的是下面哪個概率更高。

P( Flu| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

?P(Flu)*P(Headache= severe|Flu)*P(Sore= no|Flu)*P(Temperature= normal |Flu)*P(Cough = yes|Flu)

P( Cold| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

?P(Cold)*P(Headache= severe|Cold)*P(Sore= no|Cold)*P(Temperature= normal |Cold)*P(Cough = yes |Cold)

為了計算上面這個結果,我們需要通過已知數據(訓練數據)讓機器自己“學習”(建立)一個“模型”。由已知模型很容以得出下表中的結

以及

e= small value = 10^-7(one can use e to be less than 1/n where n is the number of training instances)

P( Flu| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

= P(Flu)*P(Headache = severe|Flu)*P(Sore= no|Flu)*P(Temperature = normal |Flu)*P(Cough = yes|Flu)

=   3/5   ×  2/3    ×     e     ×        2/3       ×      3/3    = 0.26e

P( Cold| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

~ P(Cold)*P(Headache =severe|Cold)*P(Sore = no|Cold)*P(Temperature = normal |Cold)*P(Cough = yes|Cold)

=  2/5     ×      e        ×      ?       ×   1       ×        ?    = 0.1e

顯然P(Flu) > P(Cold),所以我們的診斷(預測,分類)結果是 Flu。

最后討論一下樸素貝葉斯分類器的特點(來自網上資料總結,我就不翻譯了):

? Na?ve Bayesian Classifier is very simple to build, extremely fast to make decisions, and easy to change the probabilities when the new data becomes available (especially when the new data is additional information not modification to previously used data).
? Works well in many application areas.
? Scales easily for large number of dimensions (100s) and data sizes.
? Easy to explain the reason for the decision made.
? One should apply NB first before launching into more sophisticated classification techniques.

我們將把貝葉斯網絡留待下一篇文章中介紹(未完,待續...)。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢