樸素貝葉斯分類器

單純貝氏自1950年代已廣泛研究，在1960年代初就以另外一個名稱引入到文字資訊檢索界中，:488 並仍然是文字分類的一種熱門相競爭。 它在自動醫療診斷中也有應用。單純貝氏分類器是高度可擴充套件的，因此需要數量與學習問題中的變數成線性關係的引數。最大似然訓練可以透過評估一個封閉形式的表示式來完成，:718 只需花費線性時間，而不需要其他很多型別的分類器所使用的費時的迭代逼近。在統計學和計算機科學，單純貝氏模型有各種名稱，包括簡單貝葉斯和獨立貝葉斯。 所有這些名稱都參考了貝葉斯定理在該分類器的決策規則中的使用，但單純貝氏不用到貝葉斯方法； 《》提到“『單純貝氏』有時被稱為貝葉斯分類器，這個馬虎的使用促使真正的貝葉斯論者稱之為傻瓜貝葉斯模型。”:482簡介.單純貝氏是一種建分類器的簡單方法。該分類器模型會給問題例項分配用特徵值表示的類標籤，類標籤取自有限集合。它不是訓練這種分類器的單一演算法，而是一系列基於相同原理的演算法：所有單純貝氏分類器都假定樣本每個特徵與其他特徵都不相關。舉個例子，如果一種水果其具有紅，圓，直徑大概3英寸等特徵，該水果可以被判定為是蘋果。儘管這些特徵相互依賴或者有些特徵由其他特徵決定，然而單純貝氏分類器認為這些屬性在判定該水果是否為蘋果的機率分佈上獨立的。對於某些型別的機率模型，在監督式學習的樣本集中能獲取得非常好的分類效果。在許多實際應用中，單純貝氏模型引數估計使用最大似然估計方法；換而言之，在不用到貝葉斯機率或者任何貝葉斯模型的情況下，單純貝氏模型也能奏效。儘管是帶著這些樸素思想和過於簡單化的假設，但單純貝氏分類器在很多複雜的現實情形中仍能夠取得相當好的效果。2004年，一篇分析貝葉斯分類器問題的文章揭示了單純貝氏分類器取得看上去不可思議的分類效果的若干理論上的原因。 儘管如此，2006年有一篇文章詳細比較了各種分類方法，發現更新的方法的效能超過了貝葉斯分類器。單純貝氏分類器的一個優勢在於只需要根據少量的訓練資料估計出必要的引數。由於變數獨立假設，只需要估計各個變數的方法，而不需要確定整個協方差矩陣。單純貝氏機率模型.理論上，機率模型分類器是一個條件機率模型。formula_1獨立的類別變數formula_2有若干類別，條件依賴於若干特徵變數formula_3,formula_4...,formula_5。但問題在於如果特徵數量formula_6較大或者每個特徵能取大量值時，基於機率模型列出機率表變得不現實。所以我們修改這個模型使之變得可行。貝葉斯定理有以下式子：formula_7用樸素的語言可以表達為：formula_8實際中，我們只關心分式中的分子部分，因為分母不依賴於formula_2而且特徵formula_10的值是給定的，於是分母可以認為是一個常數。這樣分子就等價於聯合分佈模型。formula_11重複使用鏈式法則，可將該式寫成條件機率的形式，如下所示：formula_11formula_13formula_14formula_15formula_16formula_17現在“樸素”的條件獨立假設開始發揮作用：假設每個特徵formula_10對於其他特徵formula_19,formula_20是條件獨立的。這就意味著formula_21對於formula_22，所以聯合分佈模型可以表達為formula_23這意味著上述假設下，類變數formula_2的條件分佈可以表達為：formula_25其中formula_26是一個只依賴與formula_27等的縮放因子，當特徵變數的值已知時是一個常數。由於分解成所謂的類先驗機率formula_28和獨立機率分佈formula_29，上述機率模型的可掌控性得到很大的提高。如果這是一個formula_30分類問題，且每個formula_31可以表達為formula_32個引數，於是相應的單純貝氏模型有("k" − 1) + "n" "r" "k"個引數。實際應用中，通常取formula_33，因此模型的引數個數為formula_35，其中formula_6是二值分類特徵的個數。從機率模型中構造分類器.討論至此為止我們匯出了獨立分佈特徵模型，也就是單純貝氏機率模型。單純貝氏分類器包括了這種模型和相應的決策規則。一個普通的規則就是選出最有可能的那個：這就是大家熟知的最大後驗機率決策準則。相應的分類器便是如下定義的formula_37公式：formula_38引數估計.所有的模型引數都可以透過訓練集的相關頻率來估計。常用方法是機率的最大似然估計。類的先驗機率可以透過假設各類等機率來計算。為了估計特徵的分佈引數，我們要先假設訓練集資料滿足某種分佈或者非引數模型。高斯單純貝氏.如果要處理的是連續資料一種通常的假設是這些連續數值為高斯分佈。例如，假設訓練集中有一個連續屬性，formula_39。我們首先對資料根據類別分類，然後計算每個類別中formula_39的均值和方差。令formula_41 表示為formula_39在"c"類上的均值，令formula_43為 formula_39在"c"類上的方差。在給定類中某個值的機率，formula_45，可以透過將formula_46表示為均值為formula_41方差為formula_43正態分佈計算出來。如下，formula_49處理連續數值問題的另一種常用的技術是透過離散化連續數值的方法。通常，當訓練樣本數量較少或者是精確的分佈已知時，透過機率分佈的方法是一種更好的選擇。在大量樣本的情形下離散化的方法表現更優，因為大量的樣本可以學習到資料的分佈。由於單純貝氏是一種典型的用到大量樣本的方法，所以單純貝氏方法都用到離散化方法，而不是機率分佈估計的方法。樣本修正.如果一個給定的類和特徵值在訓練集中沒有一起出現過，那麼基於頻率的估計下該機率將為0。這將是一個問題。因為與其他機率相乘時將會把其他機率的資訊統統去除。所以常常要求要對每個小類樣本的機率估計進行修正，以保證不會出現有為0的機率出現。討論.儘管實際上獨立假設常常是不準確的，但單純貝氏分類器的若干特性讓其在實踐中能夠取得令人驚奇的效果。特別地，各類條件特徵之間的解耦意味著每個特徵的分佈都可以獨立地被當做一維分佈來估計。這樣減輕了由於維數災帶來的阻礙,當樣本的特徵個數增加時就不需要使樣本規模呈指數增長。然而單純貝氏在大多數情況下不能對類機率做出非常準確的估計，但在許多應用中這一點並不要求。例如，單純貝氏分類器中，依據最大後驗機率決策規則只要正確類的後驗機率比其他類要高就可以得到正確的分類。所以不管機率估計輕度的甚至是嚴重的不精確都不影響正確的分類結果。在這種方式下，分類器可以有足夠的魯棒性去忽略單純貝氏機率模型上存在的缺陷。例項.性別分類.問題描述:透過一些測量的特徵，包括身高、體重、腳的尺寸，判定一個人是男性還是女性。訓練.訓練資料如下：假設訓練集樣本的特徵滿足高斯分佈，得到下表：我們認為兩種類別是等機率的，也就是P(male)= P(female) = 0.5。在沒有做辨識的情況下就做這樣的假設並不是一個好的點子。但我們透過資料集中兩類樣本出現的頻率來確定P(C)，我們得到的結果也是一樣的。測試.以下給出一個待分類是男性還是女性的樣本。我們希望得到的是男性還是女性哪類的後驗機率大。男性的後驗機率透過下面式子來求取formula_50女性的後驗機率透過下面式子來求取formula_51證據因子用來對各類的後驗機率之和進行歸一化.formula_52證據因子是一個常數，所以可以忽略。接下來我們來判定這樣樣本的性別。formula_53formula_54,其中formula_55，formula_56是訓練集樣本的正態分佈引數. 注意，這裡的值大於1也是允許的 – 這裡是機率密度而不是機率，因為身高是一個連續的變數.formula_57formula_58formula_59formula_60formula_61formula_62formula_63formula_64由於女性後驗機率的分子比較大，所以我們預計這個樣本是女性。文字分類.這是一個用單純貝氏分類做的一個文字分類問題的例子。考慮一個基於內容的文字分類問題，例如判斷郵件是否為垃圾郵件。想像文字可以分成若干的類別，首先文字可以被一些單詞集標註，而這個單詞集是獨立分佈的，在給定的C類文字中第i個單詞出現的機率可以表示為：formula_65所以，對於一個給定類別"C"，文字"D"包含所有單詞formula_66的機率是:formula_67我們要回答的問題是「文件"D"屬於類"C"的機率是多少？」換而言之formula_68是多少？現在定義formula_69formula_70透過貝葉斯定理將上述機率處理成似然度的形式formula_71formula_72formula_73用上述貝葉斯的結果，可以寫成formula_74formula_75兩者相除:formula_76整理得:formula_77這樣機率比p("S" | "D") / p(¬"S" | "D")可以表達為似然比。實際的機率p("S" | "D")可以很容易透過log (p("S" | "D") / p(¬"S" | "D"))計算出來，基於p("S" | "D") + p(¬"S" | "D") = 1。結合上面所討論的機率比，可以得到：formula_78(這種對數似然比的技術在統計中是一種常用的技術。在這種兩個獨立的分類情況下，把對數似然比轉化為S曲線的形式)。最後文字可以分類，當formula_79或者formula_80時判定為垃圾郵件，否則為正常郵件。