機器學習-樸素貝葉斯及其手寫實現

一、簡介

1、樸素貝葉斯的基本思想就是:給出一個分類問題,對於待求項,屬於哪個分類的概率最大,那這個待求項就屬於哪個分類。
2、如給出假設場景,要分類物有n個特徵,分別爲F1、F2、F3、…、Fn,現在有m個類別分別是C1、C2、C3、…、Cm。貝葉斯就是計算出概率最大的那個分類。

二、原理

  1. 準備知識
    貝葉斯條件概率的計算公式(核心):

    P(A|B)=P(A,B)/P(B)=P(B|A)*P(A)/P(B)

  2. 分類原理
    假設這裏要被分類的類別有兩類,類c1和類c2,那麼我們需要計算概率p(c1|x,y)和p(c2|x,y)的大小並進行比較:
    如果:p(c1|x,y)>p(c2|x,y),則(x,y)屬於類c1

    p(c1|x,y)<p(c2|x,y),則(x,y)屬於類c2

    我們知道p(x,y|c)的條件概率所表示的含義爲:已知類別c1條件下,取到點(x,y)的概率;那麼p(c1|x,y)所要表達的含義呢?顯然,我們同樣可以按照條件概率的方法來對概率含義進行描述,即在給定點(x,y)的條件下,求該點屬於類c1的概率值。那麼這樣的概率該如何計算呢?顯然,我們可以利用貝葉斯準則來進行變換計算:

    p(ci|x,y)=p(x,y|ci)*p(ci)/p(x,y)

    利用上面的公式,我們可以計算出在給定實例點的情況下,分類計算其屬於各個類別的概率,然後比較概率值,選擇具有最大概率的那麼類作爲點(x,y)的預測分類結果。
    以上我們知道了通過貝葉斯準則來計算屬於各個分類的概率值,那麼具體而言,就是計算貝葉斯公式中的三個概率,只要得到了這三個概率值,顯然我們就能通過貝葉斯算法預測分類的結果了。因此,到了這裏,我們就知道了朴樹貝葉斯算法的核心所在了。

  3. 如何“樸素”
    "樸素"含義:本章算法全稱叫樸素貝葉斯算法,顯然除了貝葉斯準備,樸素一詞同樣重要。這就是我們要說的條件獨立性假設的概念。條件獨立性假設是指特徵之間的相互獨立性假設,所謂獨立,是指的是統計意義上的獨立,即一個特徵或者單詞出現的可能性與它和其他單詞相鄰沒有關係。

三、手寫實踐

在企業筆試中,編程題也會出:實現樸素貝葉斯算法進行分類。如2018攜程第二題,2019攜程第一題,都出了貝葉斯進行分類。
2018攜程第二題,樸素貝葉斯實現傳送門
其他實踐傳送門如:文檔分類,過濾垃圾郵件分類。

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