機器學習算法 --- Naive Bayes classifier

1、引言

   在開始算法介紹以前,讓咱們先來思考一個問題,假設今天你準備出去爬山,但起牀後發現今天早晨的天氣是多雲,那麼你今天是否應該選擇出去呢? 你有最近這一個月的天氣狀況數據以下,請作出判斷。html

  • 這個月下雨的天數佔10%
  • 這個月早晨是多雲的天數佔40%        
  • 在下雨的天數中早晨是多雲的佔50%        

   若是有普通本科的機率論知識,這個問題就不難解決,計算一下今天會下雨的機率,而後根據機率決定便可。解決方式以下:算法

    

  能夠發現,今天下雨的機率只有12.5%,仍是能夠出去玩的(固然若是怕萬一,那仍是呆在家裏)。dom

2、Bayes’s theorem

  沒錯,上面的計算公式就是貝葉斯定理,這個定理的數學表示以下:機器學習

 

  這個定理在平常生活中的應用很是普遍,好比:學習

    • If dangerous fires are rare (1%) but smoke is fairly common (10%) due to barbecues, and 90% of dangerous fires make smoke. 若是煙霧報警器檢測到有煙,請問發生火災的可能爲多少?spa

    • Suppose that a test for using a particular drug is 99% sensitive and 99% specific. That is, the test will produce 99% true positive results for drug users and 99% true negative results for non-drug users. Suppose that 0.5% of people are users of the drug. What is the probability that a randomly selected individual with a positive test is a drug user?
    • ....

  對上述公式作一個變形以下:3d

  在對其進行擴展則以下:htm

 

3、Naive Bayes Classifier

  上面說了這麼多,好像與機器學習分類器沒啥關係啊!可是不是,是有關係的, Naive Bayes Classifier就是一種基於機率的分類器。blog

  首先,咱們假設一組向量 ,這組向量的各個值表示某個數據的特徵值,那麼它屬於某個類別  的機率就可用這個形式表示: 。ci

  根據上面的 Bayes’s theorem,這個機率的計算方法就以下:

  (1)

  對於條件機率的定義以下:

  

  則,

  =

  可將上式寫成以下形式:

  (2)

  而後,咱們假設xi與xj(j不等於i)獨立(即特徵之間沒有關係),則:

  

  則,對於(2)式(即(1)式右半部分的分母),就能夠寫成以下形式:

  

  

  假設,則(1)式能夠寫成以下形式:

  (3)

   經過(3)式,咱們就能夠計算一個數據屬於某個類別的機率,分類結果也就是機率最大的那一個類別,因此Naive Bayes Classifier的完整表達形式以下:

  

  注意:因爲在最後的結果比較中,每個結果的計算都含有,即它不影響比較結果,能夠直接忽略。 

4、說明

   關於Naive Bayes Classifier,咱們假設了特徵之間不存在任何關係,然而現實是特徵之間是不可能沒有關係的。好比對於水果的類別,它們的顏色,大小,重量之間好比存在某種聯繫;再好比對於人類的性別,身高與體重等特徵也是存在聯繫的。可是,Naive Bayes Classifier每每會取得比較好的結果,若是對數據和樣本能作一些合適的預處理,它取得的結果是很是好的。

   Naive Bayes Classifier在現實生活中的應用:垃圾郵件的分類,拼寫檢查與自動糾正,銀行關於信用卡欺詐的檢測等等。

 

5、參考與擴展連接

  關於本篇文章的參考連接:https://www.mathsisfun.com/data/bayes-theorem.html

              https://www.wikiwand.com/en/Bayes%27_theorem# 

              https://www.wikiwand.com/en/Naive_Bayes_classifier 

  這些連接中的不少知識本篇文章中尚未講到,推薦你們去閱讀學習。

相關文章
相關標籤/搜索