貝葉斯算法-簡易入門

請在電腦端觀看,手機端某些顯示可能會有一些問題

什麼是貝葉斯算法?

好吧,這是一個僞標題,我們可以從以下幾點對貝葉斯進行一個大致的認識

  • 貝葉斯是一種基於概率論的算法

  • 貝葉斯是一種基於先驗特徵進行分類的算法

  • 貝葉斯非常簡單,並且對於訓練數據較少的情況下依然能有比較好的效果

  • 貝葉斯公式
    P(A|B)=\frac{P(B|A)*P(A)}{P(B)}
    推論過程:P(A∩B) = P(A|B) * P(B) = P(B|A) * P(A)

    1. P(A∩B) : A 和 B 同時發生的概率
    2. P(A|B) : 已知 B 發生的情況下,A 發生的概率
    3. P(B|A) : 已知 A 發生的情況下,B 發生的概率
    4. P(A) : A 發生的概率
    5. P(B) : B 發生的概率
      對號入座一下,不難得出貝葉斯公式,這裏就不囉嗦了啊
  • 實際應用
    大致瞭解了下貝葉斯,那麼舉個生活中常見的列子來加深下理解吧:

    • 問題:根據長短髮來判斷一個人的性別 !
    • 已知:
      1. 以 40個男人 和 60女人 進行模型訓練
      2. 男生留長髮的概率是 10%
      3. 女生留長髮的概率是 90%
    • 求:隨機抽取一個人,已知其是長髮,求其性別
      求是女生的概率:P(女|長髮)=\frac{P(長髮|女)*P(女)}{P(長髮)}=\frac{90\%*60\%}{P(長髮)}
      求是男生的概率:P(男|長髮)=\frac{P(長髮|男)*P(男)}{P(長髮)}=\frac{10\%*40\%}{P(長髮)}
      所以:
      \frac{P(女|長髮)}{P(男|長髮)}=54/4 = 13.5 : 1

從上面的推論很清楚的知道,如果一個人是長髮,那麼他是女的概率是 13.5/(13.5+1),所以通過我們的模型得出的結果那如果一個人是長髮,那他就是女生。至於這個結果有多準確,那麼就只能通過大量數據來驗證了。。。

  • 從上面的實際應用我們更深一步的瞭解了 貝葉斯算法,那麼我們繼續深入一下下?
    上面我們是通過長短髮來區分男女,肯定不是那麼準確嘛,那麼我們再加個維度 身高。

    • 男生身高1.6m以上是 80%
    • 女生身高1.6m以上是 30%
    • 求:隨機抽取一個人,已知其是長髮,身高1.7m,求其性別
      求是女生的概率:P(女|(長,高))=\frac{P((長,高)|女)*P(女)}{P((長,高))}
      這裏我們需要確定的是 你留長髮還是短髮你身高几米 是木有關係的,也就是說是兩個獨立事件噢!
      所以:
      P((長,高)|女)= P(長|女)* P(高|女) =30\% * 90\%
      代入上面的公式就能得出如果一個1.7m的人是長髮,那麼他是女生的概率 P(女|(長,高)) ,同理也可以得出P(男|(長,高))
      如果
      P(女|(長,高)) > P(男|(長,高)) => 我們則認爲他是 女人,反正則是 男人

    其實這就是樸素貝葉斯:根據給予的特質(長髮,身高)來計算他在分類(男女)中出現的概率,哪個分類的概率越最大,就認爲他是屬於那個分類。

  • 總結:貝葉斯其實還是比較簡單的,其實就是一個套用公式的過程,值得注意的是在使用過程中的獨立事件的概率的求法,以及樸素貝葉斯的結論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章