朴素貝葉斯算法,貝葉斯分類算法,貝葉斯定理原理


 朴素貝葉斯算法,貝葉斯分類算法,貝葉斯定理原理

貝葉斯分類算法是統計學的一種分類方法,它是一類利用概率統計知識進行分類的算法。在許多場合,朴素貝葉斯(Naïve Bayes,NB)分類算法可以與決策樹和神經網絡分類算法相媲美,該算法能運用到大型數據庫中,而且方法簡單、分類准確率高、速度快。
由於貝葉斯定理假設一個屬性值對給定類的影響獨立於其它屬性的值,而此假設在實際情況中經常是不成立的,因此其分類准確率可能會下降。為此,就衍生出許多降低獨立性假設的貝葉斯分類算法,如TAN(tree augmented Bayes network)算法。

朴素貝葉斯算法的核心思想:選擇具有最高后驗概率作為確定類別的指標。

--------------------

朴素貝葉斯算法
設每個數據樣本用一個n維特征向量來描述n個屬性的值,即:X={x1,x2,…,xn},假定有m個類,分別用C1, C2,…,Cm表示。給定一個未知的數據樣本X(即沒有類標號),若朴素貝葉斯分類法將未知的樣本X分配給類Ci,則一定是
P(Ci|X)>P(Cj|X) 1≤j≤m,j≠i
根據貝葉斯定理
由於P(X)對於所有類為常數,最大化后驗概率P(Ci|X)可轉化為最大化先驗概率P(X|Ci)P(Ci)。如果訓練數據集有許多屬性和元組,計算P(X|Ci)的開銷可能非常大,為此,通常假設各屬性的取值互相獨立,這樣
先驗概率P(x1|Ci),P(x2|Ci),…,P(xn|Ci)可以從訓練數據集求得。
根據此方法,對一個未知類別的樣本X,可以先分別計算出X屬於每一個類別Ci的概率P(X|Ci)P(Ci),然后選擇其中概率最大的類別作為其類別。
朴素貝葉斯算法成立的前提是各屬性之間互相獨立。當數據集滿足這種獨立性假設時,分類的准確度較高,否則可能較低。另外,該算法沒有分類規則輸出。

 

    在所有的機器學習分類算法中,朴素貝葉斯和其他絕大多數的分類算法都不同。對於大多數的分類算法,比如決策樹,KNN,邏輯回歸,支持向量機等,他們都是判別方法,也就是直接學習出特征輸出Y和特征X之間的關系,要么是決策函數Y=f(X)Y=f(X),要么是條件分布P(Y|X)P(Y|X)。但是朴素貝葉斯卻是生成方法,也就是直接找出特征輸出Y和特征X的聯合分布P(X,Y)P(X,Y),然后用P(Y|X)=P(X,Y)/P(X)P(Y|X)=P(X,Y)/P(X)得出。

朴素貝葉斯很直觀,計算量也不大,在很多領域有廣泛的應用。

1. 朴素貝葉斯相關的統計學知識

    在了解朴素貝葉斯的算法之前,我們需要對相關必須的統計學知識做一個回顧。

    貝葉斯學派很古老,但是從誕生到一百年前一直不是主流。主流是頻率學派。頻率學派的權威皮爾遜和費歇爾都對貝葉斯學派不屑一顧,但是貝葉斯學派硬是憑借在現代特定領域的出色應用表現為自己贏得了半壁江山。

    貝葉斯學派的思想可以概括為先驗概率+數據=后驗概率。也就是說我們在實際問題中需要得到的后驗概率,可以通過先驗概率和數據一起綜合得到。數據大家好理解,被頻率學派攻擊的是先驗概率,一般來說先驗概率就是我們對於數據所在領域的歷史經驗,但是這個經驗常常難以量化或者模型化,於是貝葉斯學派大膽的假設先驗分布的模型,比如正態分布,beta分布等。這個假設一般沒有特定的依據,因此一直被頻率學派認為很荒謬。雖然難以從嚴密的數學邏輯里推出貝葉斯學派的邏輯,但是在很多實際應用中,貝葉斯理論很好用,比如垃圾郵件分類,文本分類。

   

 2. 朴素貝葉斯的模型

    

 

3. 朴素貝葉斯的推斷過程

    朴素貝葉斯的完整推斷過程:

4. 朴素貝葉斯的參數估計

    

 

5.  朴素貝葉斯算法過程

    我們假設訓練集為m個樣本n個維度,如下:

    共有K個特征輸出類別,分別為C1,C2,...,CKC1,C2,...,CK,每個特征輸出類別的樣本個數為m1,m2,...,mKm1,m2,...,mK,在第k個類別中,如果是離散特征,則特征XjXj各個類別取值為mjlmjl。其中l取值為1,2,...Sj1,2,...Sj,SjSj為特征j不同的取值數。

    輸出為實例X(test)X(test)的分類。

    算法流程如下:

    1) 如果沒有Y的先驗概率,則計算Y的K個先驗概率:P(Y=Ck)=mk/mP(Y=Ck)=mk/m,否則P(Y=Ck)P(Y=Ck)為輸入的先驗概率。

    2) 分別計算第k個類別的第j維特征的第l個個取值條件概率:P(Xj=xjl|Y=Ck)P(Xj=xjl|Y=Ck)

      a)如果是離散值:

      λλ可以取值為1,或者其他大於0的數字。

      b)如果是稀疏二項離散值:

       此時ll只有兩種取值。

      c)如果是連續值不需要計算各個l的取值概率,直接求正態分布的參數:

      需要求出μkσ2kμk和σk2。 μkμk為在樣本類別CkCk中,所有XjXj的平均值。σ2kσk2為在樣本類別CkCk中,所有XjXj的方差。

   

     從上面的計算可以看出,沒有復雜的求導和矩陣運算,因此效率很高。

6.  朴素貝葉斯算法小結

    朴素貝葉斯的主要優點有:

    1)朴素貝葉斯模型發源於古典數學理論,有穩定的分類效率。

    2)對小規模的數據表現很好,能個處理多分類任務,適合增量式訓練,尤其是數據量超出內存時,我們可以一批批的去增量訓練。

    3)對缺失數據不太敏感,算法也比較簡單,常用於文本分類。

    朴素貝葉斯的主要缺點有:   

    1) 理論上,朴素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為朴素貝葉斯模型給定輸出類別的情況下,假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,在屬性個數比較多或者屬性之間相關性較大時,分類效果不好。而在屬性相關性較小時,朴素貝葉斯性能最為良好。對於這一點,有半朴素貝葉斯之類的算法通過考慮部分關聯性適度改進。

    2)需要知道先驗概率,且先驗概率很多時候取決於假設,假設的模型可以有很多種,因此在某些時候會由於假設的先驗模型的原因導致預測效果不佳。

    3)由於我們是通過先驗和數據來決定后驗的概率從而決定分類,所以分類決策存在一定的錯誤率。

    4)對輸入數據的表達形式很敏感。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM