(山東科技大學數學與系統科學學院 山東 青島 266590)
樸素貝葉斯分類算法淺析
秦懷強
(山東科技大學數學與系統科學學院山東青島266590)
貝葉斯分類是一類分類算法的總稱,這類算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。而樸素樸素貝葉斯分類是貝葉斯分類中最簡單和常見的一種分類方法。它之所以叫樸素貝葉斯分類,關鍵在于它的假設條件:一個實例的特征屬性值在給定類別值的條件下是相互獨立的。
樸素貝葉斯;分類;訓練集;特征屬性值1分類問題綜述
已知集合C={y1,y2,…,yn}和I={x1,x2,…,xm,…},確定映射規則y=f(x),使得任意的xi∈I有且僅有一個yi∈C使得yj=f(xi)成立。其中C叫做類別集合,每一個元素是一個類別,而I叫做項集合,其中每一個元素是一個待分類項,f叫做分類器。分類算法的任務就是構造分類器f。
這里要著重強調,分類問題往往采用經驗性方法構造映射規則,即一般情況下的分類問題缺少足夠的信息來構造完全正確的映射規則,而是通過對經驗數據的學習實現一定概率意義上正確的分類,因此所訓練出的分類器并不是一定能將每個待分類項準確映射到其分類,分類器的質量與分類器構造方法、待分類數據的特性以及訓練樣本數量等諸多因素有關[1]。
首先,P(A|B)表示事件B已經發生的前提下,事件A發生的概率,其基本的求解公式為(1)。

(1)
貝葉斯定理之所以有用,是因為生活中經常遇到這種情況:可以很容易直接得出P(A|B),而P(B|A)則很難直接得出,而有時后者則是需要的,貝葉斯定理就打通了從P(A|B)獲得P(B|A)的道路。下面給出貝葉斯定理如公式(2)所示。

(2)
(一)樸素貝葉斯分類的原理
樸素貝葉斯分類算法是貝葉斯分類算法的一種,之所以是樸素的很大程度上是因為它的假設條件:一個實例在給定類別值的條件下各特征屬性值間是相互獨立的[2]。樸素貝葉斯分類算法的定義如下所示:
給定一個訓練集D={X1,X2,…,Xt},它里面有t個訓練實例,針對于每個訓練實例X={a1,a2,…,an},它里面有n個屬性值,并且被類別標簽y∈Y所標記。則一個測試實例X,它的類別標簽為y的概率為公式(3)。

(3)
又因為樸素貝葉斯定理的假設條件:一個訓練實例在給定類別值的條件下特征屬性值間是相互獨立的。可以得到公式(4)。
(4)
結合公式(3)和(4)可以得到樸素貝葉斯分類器的公式如(5)所示。
(5)
(二)估計類別下特征屬性劃分的條件概率和拉普拉斯平滑
由(一)節可以看出,計算各個劃分的條件概率
P(ai|y)是樸素貝葉斯分類的關鍵性步驟,當特征屬性為離散值時,只要很方便的統計訓練樣本中各個劃分在每個類別中出現的頻率即可用來估計P(ai|y),下面重點討論特征屬性是連續值的情況。
當特征屬性為連續值時,通常假定其服從高斯分布即公式(6)。
(6)
因此只要計算出訓練集中各個類別中此特征項劃分的各均值和標準差,代入公式(6)即可得到需要的估計值。
另一個需要討論的問題是當P(ai|y)=0時,這會令分類器質量大大降低。為了解決這個問題,可以引入拉普拉斯校準,如公式(7)和(8)所示。

(7)

(8)
其中F(ai,y)指的是訓練集中,有特征屬性值ai和類別值y的訓練實例的數目,N(Y)指的是類別值Y的種類數。
[1]袁梅宇.數據挖掘與機器學習WEKA應用技術與實踐[M].北京,清華大學出版社2014:64-64
[2]Friedman N,Geiger D,Goldszmidt M.Bayesian network classifiers[J].Machine Learning,1997,29:131-163
秦懷強(1992-),男,漢,山東省棗莊,碩士,山東科技大學,方向數據挖掘。