什么是朴素貝葉斯分類器?
首先看朴素兩個字,啥意思呢??它是英文單詞 naive 翻譯過來的,意思就是簡單的,朴素的。(它哪里簡單呢,后面會看到的:它假設一個事件的各個屬性之間是相互獨立的,這樣簡化了計算過程;這個假設在現實中不太可能成立,但是呢,研究表明對很多分類結果的准確性影響不大哦。) 稱為貝葉斯分類器的原因是因為它利用了貝葉斯公式哦;
送上貝葉斯公式
首先請看 我寫的貝中斯公式相關知識 中的內容,它的公式就是:
P(A|B) = P(B|A) P(A) / P(B)
那它描述了什么呢? 可以這么說: 利用先驗概率P(A) 來求 后驗概率 P(A|B)。
怎么用貝葉斯公式進行分類呢?
設有一個訓練樣本集合,可以表示為X={x1, x2, x3, x4……},且其中每一個訓練樣本xi 包括 j 個屬性,如 xi = (a1, a2, ……,aj); 這個訓練樣本集合可以分為 n 類,如{class1, class2, ……,classn}.
現在有一個測試樣本x1(我們就假設x1 是獨立於訓練樣本之外的樣本哈),如何分類?怎么辦?是不是在我們已經 x1 的情況下去求屬於每個類別的概率呢,說的學術一點,就是去求類別的后驗概率,最后誰的概率最大,它就屬於哪類, 公式如下所示:
現在呢,我們把它的”朴素“用上,即我們上面的假設:一個事件的各個屬性之間是相互獨立的,即 對於xi 事件來說,它的每各屬性 a1, a2, a3, ……,aj 是相互獨立的,所以上式又可以表示為:
是吧,這樣就簡單多了。在上式中,對於不同的類 ci, 分母的概率P(x1)是相同的,所以呢, 如果想上 P(ci|x1) 最大,那么就是讓分子最大就可以了。
現在的問題是如何求分子中的 P(an|ci)與P(ci)。 這個好說,因為我們有訓練樣本,我們已經知道了訓練樣本集合中每個樣本所屬於的類別了吧。下面我們就通過訓練樣本集合利用來求哈,具體我們分兩類:
1,對於離散的屬性來說,我們可以通過統計的方法(用古典概率)哦,即用頻率來近擬代替概率哦。
比如,一共1000,000 樣本吧,屬於類別A的有50,000 個,我們就可以求出 P(A) = 50000 / 1000000 =0.05 。 同樣的辦法,我們也可以求出 P(an|ci)來吧。
這里注意:如果其中一個類別的樣本也沒有怎么辦呢?不就是0了嗎?我們的做法是分子分母都加1 ,這就叫做 Laplace 平滑處理啦。如上面變為了:P(A) = 50000 +1 / 1000000 +1= 0.05 ,又如屬於類別B的為0個樣本,這時,P(B) = 0 +1 / 1000000 +n (n表示一共可以分為n類)。
2.對於連續的數值來說,很多時候把樣本中的每個屬性看作為為正態分布,這樣我們就可以通過訓練樣本的集合得到正態分布的均值與標准差了吧。然后代入正態分布的標准公式中,得到了函數的高斯密度函數。
舉個例子哈,如,假如屬性 a1 表示的為身高吧,通過訓練樣本集合,我們可以得到屬於類別A 的所有樣本的身高的均值 u1 為與標准差 σ1了吧,現在呢代入正態分布的公式中得到:
得到它以后呢,對於我們要分類的樣本 x1 來說,它的身高屬性為 h 吧,是不是我們就可以得到了用概率密度 f(h) 來代替 P(a1|ci)了啊。 因為我們反正較的是一個大小,對於用概率密度還是用概率來求都一樣,我們只要的誰大誰小。
現在我們是不是完成了分類了呢啊,哈哈,這就是朴素貝葉斯分類器。很簡單。。
注意,我們這么做的前提是,我們假設了”朴素“。現實當然也有很多各個特征屬性間往往並不條件獨立,而是具有較強的相關性,這樣就限制了朴素貝葉斯分類的能力。如果要考慮它們之間的相關性的話,就要用到范圍更廣的一種算法——貝葉斯網絡(又稱貝葉斯信念網絡或信念網絡)了。
它的優缺點:
優點:計算速度快; 規則清楚易懂; 獨立事件的假設,大多數問題不至於發生太大的偏誤;
缺點: 僅適用於類別變量; 僅能應用於分類問題; 假設變量間為獨立不影響,因此作用時需要謹慎分析變量間的相關性;