樸素貝葉斯(一)

1、概述與實例算法

    貝葉斯定理被應用於各類各樣的場景下,例如疾病預測、垃圾郵件分類、新聞分類、自動駕駛……oop

    固然我不是搞數學的,我這裏只是就應用的角度來談談樸素貝葉斯的使用,樸素貝葉斯中一個重要的假設:各個因素相互獨立。大數據

    貝葉斯定理就一句話:P(B|A)=P(A|B)P(B)/P(A),它描述了在A條件發生的狀況下B發生的機率,或許直接看公式有點懵圈,下面請看這樣一個例子:博客

有一組統計數據是描述小明上班是否會遲到:數學

天晴table

交通良好技術

不遲到統計

下雨數據

交通良好tab

不遲到

下雨

交通良好

遲到

天晴

交通堵塞

遲到

下雨

交通堵塞

不遲到

今天,下雨、交通堵塞,咱們來預測一下小明上班是否會遲到。這裏咱們假設各個因素之間相互獨立。

一、在下雨、交通堵塞的狀況下遲到的機率:

P(遲到|下雨×交通堵塞)=P(下雨×交通堵塞|遲到)×P(遲到)/P(下雨×交通堵塞)

=P(下雨|遲到)×p(交通堵塞|遲到)×P(遲到)/P(下雨)p(交通堵塞)

=(1/2×1/2×2/5)/(3/5×2/5)=5/12

二、在下雨、交通堵塞的狀況下不遲到的機率:

P(不遲到|下雨×交通堵塞)=P(下雨×交通堵塞|不遲到)×P(不遲到)/P(下雨×交通堵塞)

=P(下雨|不遲到)×p(交通堵塞|不遲到)×P(不遲到)/P(下雨)p(交通堵塞)

=(2/3×1/3×3/5)/(3/5×2/5)=5/9

那麼我基於這組數據,更傾向於小明今天不會遲到。

若是樣本足夠大,那麼結果更趨近於真相。這就是樸素貝葉斯。

2、簡化

一、假設一組數據有因子集合{P1,P2,……Pn}能夠肯定該數據屬於分類C,那麼

p(C|P1P2……Pn)=p(P1P2...Pn|C)P(C) / p(P1P1...Pn)

二、因爲p(P1P1...Pn)對於全部類別C都是相同的,那麼就等價於求

p(P1P1...Pn|C)P(C) 的最大值

三、假設條件相互獨立

p(P1P1...Pn|C)P(C) =p(P1|C)*p(P2|C)*p(Pn|C)*p(C)

四、最終問題簡化爲求p(P1|C)*p(P2|C)*p(Pn|C)*p(C)的最大值

3、問題

    問題簡化以後,單機版的樸素貝葉斯很好實現,可是處理大規模數據,仍是顯得愛莫能助。

    大數據技術發展,給了咱們運算全量數據的能力,那麼基於Hadoop MapReduce模型的樸素貝葉斯算法該如何實現呢?請關注下一篇《樸素貝葉斯(二)》。

快樂源於分享。

此博客乃做者原創, 轉載請註明出處   

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息