一.樸素貝葉斯法
樸素貝葉斯(naive Bayes)法 是基於貝葉斯定理與特徵條件獨立假設的分類方法.對於給定的訓練數據集,首先基於特徵條件獨立假設 學習輸入/輸出的聯合概率分佈;然後基於此模型,對給定的輸入x,利用貝葉斯定理求出後驗概率最大的輸出y。樸素貝葉斯法實現簡單,學習與預測的效率都很高,是一種常用的方法.
本章敘述樸素貝葉斯法,包括樸素貝葉斯法的學習與分類、樸素貝葉斯法的參數估計算法.
1.1 實現原理
設:
輸入空間: X ∈ R 爲 n 維向量的集合
輸出空間: 類標記集合Y= {c1,c2,…,ck}。
輸入爲特徵向量 x ∈ X
輸出爲類標記(class label) y ∈ Y。
X是定義在輸入空間上的隨機向量,Y 是定義在輸出空間上的隨機變量。P(X,Y)是X和Y的 聯合概率分佈。
訓練數據集:
由P(X, Y)獨立同分布產生。
樸素貝葉斯法通過訓練數據集 學習聯合概率分佈P(X, Y)。具體地,學習以下 先驗概率分佈及 條件概率分佈。
先驗概率分佈:P(Y = ck), k = 1, 2, …, K
條件概率分佈:
於是學習到 聯合概率分佈P(X,Y).
條件概率分佈P(X = x | Y = ck)有 指數級數量的參數,其估計實際是不可行的。事實上,假設數據 x 的第 j 個特徵 x(j) 可能取值有 Sj個,j = 1, 2, …, n, Y可取值有 K個,那麼參數個數爲 K * ∏Sj(j = 1…n)
樸素貝葉斯法對條件概率分佈作了 條件獨立性的假設。由於這是一個較強的假設,樸素貝葉斯法也由此得名。具體地,條件獨立性假設是:
樸素貝葉斯法實際上學習到生成數據的機制,所以屬於 生成模型。條件獨立假設等於是說用於分類的特徵在類確定的條件下都是條件獨立的.這一假設使樸素貝葉斯法變得簡單,但有時會犧牲一定的分類準確率.
樸素貝葉斯法分類時,對給定的 測試數據 x,通過學習到的模型 計算後驗概率分佈P(Y=ck |X=x), 將後驗概率最大的類作爲x的類輸出。後驗概率計算根據貝葉斯定理進行:
將前一個式子帶入到上式中,有:
這是樸素貝葉斯法分類的基本公式.於是,樸素貝葉斯分類器可表示爲:
注意到,上式中分母所有的 ck 都是相同的,對分母計算後爲1,所以,
1.2 後驗概率最大化
樸素貝葉斯法將實例分到後驗概率最大的類中,這等價於期望風險最小化。假設選擇0-1損失函數:
式中 f(x) 是分類決策函數。這時,期望風險函數爲:
期望是對聯合分佈P(X,Y)取的,由此取條件期望
爲了使期望風險最小化,只需對 X = x逐個極小化,由此得到:
這樣一來,根據期望風險最小化準則就得到了後驗概率最大化準則:
即樸素貝葉斯法所採用的原理。
二.樸素貝葉斯法的參數估計
2.1 極大似然估計
在樸素貝葉斯法中,學習意味着估計P(Y = ck) 和 P(Xj = xj | Y = ck)。可以應用 最大似然估計相應的概率,即利用現有的訓練數據集進行相應的計算。先驗概率P(Y = ck) 的最大似然估計是:
設第 j 個特徵 xj 可能的取值集合爲 {aj1, aj2, …, ajsj},條件概率 P(Xi = aji | Y = ck) 的極大似然估計是:
式中,xi(j) 是第 i 個樣本的第 j 個特徵;ajL 是第 j 個特徵可能取的第 L 個值;I爲指示函數。
2.2 學習與分類算法
下面給出樸素貝葉斯法的學習與分類算法.
算法4.1 (樸素貝葉斯算法(naive Bayes algorithm))
2.3 樸素貝葉斯分類器例題
例: 試由下表的訓練數據學習一個樸素貝葉斯分類器並確定x = (2, S) 的類標記y。表中 x(1)、x(2) 爲特徵,取值的集合分別爲 A1 = {1, 2, 3}, A2 = {S, M, L},Y爲類標記,Y ∈ C = {1,-1}。
解: 根據算法4.1,容易計算下列概率:
2.4 貝葉斯估計
用極大似然估計可能會出現所要估計的 概率值爲0 的情況.這時會影響到後驗概率的計算結果,使分類產生偏差.解決這一問題的方法是採用 貝葉斯估計。具體地,條件概率的貝葉斯估計是:
式中 λ ≥ 0,等價於在隨機變量各個取值的頻數上賦予一個正數 λ > 0。當 λ = 0 時就是極大似然估計。常取 λ = 1,這時稱爲 拉普拉斯平滑(Laplace smoothing)。顯然,對任何L=1,2…,Sj, k=1,2…,K, 有
同樣,先驗概率的貝葉斯估計是:
例題: 問題同上2.3,按照拉普拉斯平滑估計概率,即取 λ = 1.