淺談樸素貝葉斯

貝葉斯公式

  貝葉斯公式由英國數學家貝葉斯 ( Thomas Bayes 1702-1761 ) 發展,用來描述兩個條件機率之間的關係,好比 P(A|B) P(B|A)。按照乘法法則,能夠馬上導出:P(AB) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可變形爲:P(A|B)=P(B|A)*P(A)/P(B)。因爲其有着堅實的數學基礎,貝葉斯分類算法的誤判率是很低的。貝葉斯方法的特色是結合先驗機率和後驗機率,即避免了只使用先驗機率的主觀偏見,也避免了單獨使用樣本信息的過擬合現象。貝葉斯分類算法在數據集較大的狀況下表現出較高的準確率,同時算法自己也比較簡單。算法

貝葉斯

 

 

  貝葉斯(Thomas Bayes,17021761),英國牧師、業餘數學家。生活在18世紀的貝葉斯生前是位受人尊敬的英格蘭長老會牧師。爲了證實上帝的存在,他發明了機率統計學原理,遺憾的是,他的這一美好願望至死也未能實現。貝葉斯在數學方面主要研究機率論。他首先將概括推理法用於機率論基礎理論,並創立了貝葉斯統計理論,對於統計決策函數、統計推斷、統計的估算等作出了貢獻。1763年發表了這方面的論著,對於現代機率論和數理統計都有很重要的做用。1758年發表了另外一著做《機會的學說概論》。貝葉斯所採用的許多術語都被沿用至今。貝葉斯思想和方法對機率統計的發展產生了深遠的影響。今天,貝葉斯思想和方法在許多領域都得到了普遍的應用。從二十世紀20~30年代開始,機率統計學出現了「頻率學派」和「貝葉斯學派」的爭論,至今,兩派的恩恩怨怨仍在繼續。spring

樸素貝葉斯

  樸素貝葉斯分類是基於貝葉斯機率的思想,假設屬性之間相互獨立,求得各特徵的機率,最後取較大的一個做爲預測結果。雖然這個簡化方式在必定程度上下降了貝葉斯分類算法的分類效果,可是在實際的應用場景中,極大地簡化了貝葉斯方法的複雜性。簡而言之,樸素貝葉斯是較爲簡單的一種分類器。函數

  屬性獨立性:事件B的發生不對事件A的發生形成影響,這樣的兩個事件叫作相互獨立事件。然而其屬性獨立性假設在現實世界中大多不能成立,例如: 「spring」的後面更有可能跟着「MVC」。學習

  AB中至少有一件事情發生:ABAB同時發生:AB(或AB);若是P(AB) =P(A)P(B),稱A,B 相互獨立。即:從數學上說,若N (N2) 個事件相互獨立,則必須知足這樣的條件:其中任意k (N k 2)個事件同時發生的機率等於該k個事件單獨發生時的機率的乘積。spa

例:假設事件相互獨立,P(spring) = 0.2P(MVC) = 0.8, 則 P(spring MVC) = 0.2 * 0.8=0.163d

1.樸素貝葉斯算法思想

  邏輯迴歸經過擬合曲線(或者學習超平面)實現分類,決策樹經過尋找最佳劃分特徵進而學習樣本路徑實現分類,支持向量機經過尋找分類超平面進而最大化類別間隔實現分類。相比之下,樸素貝葉斯另闢蹊徑,經過考慮特徵機率來預測分類。blog

  舉個例子:如今有100我的,魚龍混雜,好人和壞人的個數都差很少。如今要利用他們來訓練一個「壞蛋識別器」。這時應該怎麼辦呢?咱們無論他們以前幹過什麼事,只單看他們的長相。也就是說,咱們在區別好人壞人時,只考慮他們的樣貌特徵。好比說「笑」這個特徵,它能夠是「甜美的笑」、「隨和的笑」、「憨厚的笑」、「沒心沒肺的笑」、「微笑」等等,這些更多是「好人的笑」;也能夠是「陰險的笑」、「不懷好意的笑」、「色眯眯的笑」、「冷笑」、「皮笑肉不笑」等等,這些更多是「壞人的笑」。單單就「笑」這個特徵來講,一個好人發出「好人的笑」的機率更大,頻率更高;而壞人則是發出「壞人的笑」的機率更大,頻率更高。固然,好人也有發出壞笑的時候,壞人也有發出好人的笑的時候,這些就都是噪聲了。事件

  除了笑以外,這裏能夠用的特徵還有紋身,性別等。樸素貝葉斯把相似「笑」這樣的特徵機率化,構成一個「人的樣貌向量」以及對應的「好人/壞人標籤」,訓練出一個標準的「好人模型」和「壞人模型」,這些模型都是各個樣貌特徵機率構成的。這樣,當一個品行未知的人來了之後,咱們能夠迅速獲取他(她)的樣貌特徵向量,分別輸入「好人模型」和「壞人模型」,輸出兩個機率值。若是「壞人模型」輸出的機率值大一些,那這我的頗有可能就是個壞人了。ci

  決策樹又是怎麼作的呢?決策樹可能先看性別,由於它發現給定的帶標籤人羣裏面壞人中男性更多,這個特徵眼下最能區分壞人和好人,而後按性別先把一撥人分紅兩撥;接着看「笑」這個特徵,由於它是接下來最有區分度的特徵,根據不一樣的「笑」再把兩撥人分紅四撥;接下來看紋身......最後發現好人要麼在學堂讀書,要麼在田裏種地,要麼在山上砍柴。而壞人呢,要麼在大街上溜達,要麼在地下買賣白粉,要麼在海里當海盜。這些有次序的特徵就像路上的一個個墊腳石(樹的節點)同樣,構成通往不一樣地方的路徑(樹的枝丫),這些不一樣路徑的目的地(葉子)就是一個類別容器,包含了一類人。一個品行未知的人來了,按照其樣貌特徵順序及其對應的特徵值,不斷走啊走,最後走到了學堂或農田,那就是好人;走到了地下或大海,那就是壞人。能夠看出來,兩種分類模型的原理是很不相同的。數學

2.樸素貝葉斯例子

【例】給定以下數據:

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

上進

不帥

上進

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不帥

上進

上進

不帥

很差

上進

不上進

不嫁

不上進

不嫁

 

  如今咱們的問題是,假設有一對男女友,男生向女生求婚,此男生的四個特色分別是不帥,性格很差,窮,不上進,請你來判斷一下該女生是嫁仍是不嫁?

  這是一個經典的分類問題,轉換爲數學問題就是比較p(|(不帥、性格很差、窮、不上進))p(不嫁|(不帥、性格很差、窮、不上進))的機率,就能給出嫁或者不嫁的答案!

  這裏咱們運用到樸素貝葉斯公式: 

                                                            

 

 

   咱們須要求p(|(不帥、性格很差、窮、不上進),這是咱們如今不知道的,可是經過樸素貝葉斯公式能夠轉化爲三個較爲簡單的量:

  p(不帥、性格很差、窮、不上進|)p(不帥、性格很差、窮、不上進)p() 

  p(不帥、性格很差、窮、不上進|) = p(不帥|)*p(性格很差|)*p(|)*p(不上進|),那麼咱們就要從給定的數據中分別統計出右邊這幾個機率,就能夠求出左邊的機率!  

  咱們將上面的公式整理一下,獲得:

 

 

  接下來咱們一個一個地進行統計計算。 

  p()=

  首先咱們整理的訓練數據中,嫁的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

上進

不帥

上進

不上進

不帥

上進

上進

不帥

很差

上進

  則 p() = 6/12(總樣本數) = 1/2

  接下來求p(不帥|)=

  嫁的狀況下不帥的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

不帥

上進

不帥

上進

不帥

很差

上進

  則p(不帥|) = 3/6 = 1/2  

  再求p(性格很差|)=

  嫁的狀況下性格很差的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

不帥

很差

上進

  則p(性格很差|)= 1/6

  求p(窮|嫁) =

  嫁的狀況下窮的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

上進

  則p(|) = 1/6

  再求p(不上進|) =

  嫁的狀況下不上進的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

不上進

  則p(不上進|) = 1/6

  下面開始求分母,p(不帥)p(性格很差),p(矮),p(不上進)

  統計樣本以下:

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

上進

不帥

上進

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不帥

上進

上進

不帥

很差

上進

不上進

不嫁

不上進

不嫁

  不帥統計如上標黃所示,佔5個,那麼p(不帥) = 5/12

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

上進

不帥

上進

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不帥

上進

上進

不帥

很差

上進

不上進

不嫁

不上進

不嫁

  性格很差統計如上標黃所示,佔4個,那麼p(性格很差) = 4/12 = 1/3

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

上進

不帥

上進

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不帥

上進

上進

不帥

很差

上進

不上進

不嫁

不上進

不嫁

  窮統計如上標黃所示,佔7個,那麼p(窮) = 7/12

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

上進

不帥

上進

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不帥

上進

上進

不帥

很差

上進

不上進

不嫁

不上進

不嫁

  不上進統計如上標黃所示,佔5個,那麼p(不上進) = 5/12

  到這裏,要求p(不帥、性格很差、窮、不上進|),所須要的全部項所有求出來了,下面咱們帶入數據進去便可算出:

 

 

=(1/2*1/6*1/6*1/6*1/2)/(5/12*1/3*7/12*5/12)

 

  下面咱們根據一樣的方法來求p(不嫁|不帥,性格很差,窮,不上進),徹底同樣的作法,爲了加深理解,咱們再來過一遍。首先公式以下:

 

  下面咱們也一個一個地來進行統計計算,這個公式裏面,分母和上一個公式是同樣的,因此咱們不須要再算一次分母了,只需算分子部分。

  p(不嫁)=

  首先咱們整理的訓練數據中,不嫁的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不嫁

不上進

不嫁

  則p(不嫁)= 6/12(總樣本數) = 1/2

  p(不帥|不嫁) =

  不嫁的狀況下不帥的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

不帥

上進

不嫁

不帥

很差

不上進

不嫁

  則p(不帥|不嫁) = 2/6 = 1/3

  p(性格很差|不嫁) =

  不嫁的狀況下性格很差的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

很差

上進

不嫁

不帥

很差

不上進

不嫁

  則p(性格很差|不嫁) = 3/6 = 1/2

  p(窮|不嫁) =

  不嫁的狀況下窮的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

上進

不嫁

很差

上進

不嫁

不帥

很差

不上進

不嫁

不上進

不嫁

不上進

不嫁

  則p(矮|不嫁) = 6/6 = 1

  p(不上進|不嫁) =

  不嫁的狀況下不上進的樣本數以下:

帥?

性格?

財富?

上進?

嫁不嫁?

很差

不上進

不嫁

不帥

很差

不上進

不嫁

不上進

不嫁

不上進

不嫁

  則p(不上進|不嫁) = 4/6 = 2/3

  那麼根據公式:

 

 =(1/3*1/2*1*2/3*1/2)/(5/12*1/3*7/12*5/12)

 

  很顯然(1/3*1/2*1*2/3*1/2) > (1/2*1/6*1/6*1/6*1/2)

  因而有p(不嫁|不帥、性格很差、窮、不上進) > p(|不帥、性格很差、窮、不上進)

  因此咱們根據樸素貝葉斯算法能夠給這個女生答案,是不嫁!

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