請在電腦端觀看,手機端某些顯示可能會有一些問題
什麼是貝葉斯算法?
好吧,這是一個僞標題,我們可以從以下幾點對貝葉斯進行一個大致的認識
貝葉斯是一種基於概率論的算法
貝葉斯是一種基於先驗特徵進行分類的算法
貝葉斯非常簡單,並且對於訓練數據較少的情況下依然能有比較好的效果
-
貝葉斯公式
推論過程:P(A∩B) = P(A|B) * P(B) = P(B|A) * P(A)- P(A∩B) : A 和 B 同時發生的概率
- P(A|B) : 已知 B 發生的情況下,A 發生的概率
- P(B|A) : 已知 A 發生的情況下,B 發生的概率
- P(A) : A 發生的概率
- P(B) : B 發生的概率
對號入座一下,不難得出貝葉斯公式,這裏就不囉嗦了啊
-
實際應用
大致瞭解了下貝葉斯,那麼舉個生活中常見的列子來加深下理解吧:- 問題:根據長短髮來判斷一個人的性別 !
- 已知:
- 以 40個男人 和 60女人 進行模型訓練
- 男生留長髮的概率是 10%
- 女生留長髮的概率是 90%
- 求:隨機抽取一個人,已知其是長髮,求其性別
求是女生的概率:
求是男生的概率:
所以:
從上面的推論很清楚的知道,如果一個人是長髮,那麼他是女的概率是 13.5/(13.5+1),所以通過我們的模型得出的結果那如果一個人是長髮,那他就是女生。至於這個結果有多準確,那麼就只能通過大量數據來驗證了。。。
-
從上面的實際應用我們更深一步的瞭解了 貝葉斯算法,那麼我們繼續深入一下下?
上面我們是通過長短髮來區分男女,肯定不是那麼準確嘛,那麼我們再加個維度 身高。- 男生身高1.6m以上是 80%
- 女生身高1.6m以上是 30%
- 求:隨機抽取一個人,已知其是長髮,身高1.7m,求其性別
求是女生的概率:
這裏我們需要確定的是 你留長髮還是短髮 和 你身高几米 是木有關係的,也就是說是兩個獨立事件噢!
所以:
代入上面的公式就能得出如果一個1.7m的人是長髮,那麼他是女生的概率 P(女|(長,高)) ,同理也可以得出P(男|(長,高))
如果
P(女|(長,高)) > P(男|(長,高)) => 我們則認爲他是 女人,反正則是 男人
其實這就是樸素貝葉斯:根據給予的特質(長髮,身高)來計算他在分類(男女)中出現的概率,哪個分類的概率越最大,就認爲他是屬於那個分類。
總結:貝葉斯其實還是比較簡單的,其實就是一個套用公式的過程,值得注意的是在使用過程中的獨立事件的概率的求法,以及樸素貝葉斯的結論。