在開始算法介紹以前,讓咱們先來思考一個問題,假設今天你準備出去爬山,但起牀後發現今天早晨的天氣是多雲,那麼你今天是否應該選擇出去呢? 你有最近這一個月的天氣狀況數據以下,請作出判斷。html
若是有普通本科的機率論知識,這個問題就不難解決,計算一下今天會下雨的機率,而後根據機率決定便可。解決方式以下:算法
能夠發現,今天下雨的機率只有12.5%,仍是能夠出去玩的(固然若是怕萬一,那仍是呆在家裏)。dom
沒錯,上面的計算公式就是貝葉斯定理,這個定理的數學表示以下:機器學習
這個定理在平常生活中的應用很是普遍,好比:學習
If dangerous fires are rare (1%) but smoke is fairly common (10%) due to barbecues, and 90% of dangerous fires make smoke. 若是煙霧報警器檢測到有煙,請問發生火災的可能爲多少?spa
對上述公式作一個變形以下:3d
在對其進行擴展則以下:htm
上面說了這麼多,好像與機器學習分類器沒啥關係啊!可是不是,是有關係的, Naive Bayes Classifier就是一種基於機率的分類器。blog
首先,咱們假設一組向量 ,這組向量的各個值表示某個數據的特徵值,那麼它屬於某個類別
的機率就可用這個形式表示:
。ci
根據上面的 Bayes’s theorem,這個機率的計算方法就以下:
(1)
對於條件機率的定義以下:
則,
=
可將上式寫成以下形式:
(2)
而後,咱們假設xi與xj(j不等於i)獨立(即特徵之間沒有關係),則:
則,對於(2)式(即(1)式右半部分的分母),就能夠寫成以下形式:
假設,則(1)式能夠寫成以下形式:
(3)
經過(3)式,咱們就能夠計算一個數據屬於某個類別的機率,分類結果也就是機率最大的那一個類別,因此Naive Bayes Classifier的完整表達形式以下:
注意:因爲在最後的結果比較中,每個結果的計算都含有,即它不影響比較結果,能夠直接忽略。
關於Naive Bayes Classifier,咱們假設了特徵之間不存在任何關係,然而現實是特徵之間是不可能沒有關係的。好比對於水果的類別,它們的顏色,大小,重量之間好比存在某種聯繫;再好比對於人類的性別,身高與體重等特徵也是存在聯繫的。可是,Naive Bayes Classifier每每會取得比較好的結果,若是對數據和樣本能作一些合適的預處理,它取得的結果是很是好的。
Naive Bayes Classifier在現實生活中的應用:垃圾郵件的分類,拼寫檢查與自動糾正,銀行關於信用卡欺詐的檢測等等。
關於本篇文章的參考連接:https://www.mathsisfun.com/data/bayes-theorem.html
https://www.wikiwand.com/en/Bayes%27_theorem#
https://www.wikiwand.com/en/Naive_Bayes_classifier
這些連接中的不少知識本篇文章中尚未講到,推薦你們去閱讀學習。