什麼是 樸素貝氏(Naive Bayes)?
樸素貝氏分類器是一種基於貝氏定理的簡單機率分類器。它假設所有特徵之間相互獨立,簡化了計算複雜度,因此得名「樸素」。常用於文本分類等任務。
核心概念
樸素貝氏分類器的核心是貝氏定理,它描述了在已知一些條件下,某事件發生的機率。貝氏定理的公式如下:
P(A|B) = [P(B|A) * P(A)] / P(B)
其中:
P(A|B)是在事件 B 發生的條件下,事件 A 發生的條件機率(後驗機率)。P(B|A)是在事件 A 發生的條件下,事件 B 發生的條件機率(似然)。P(A)是事件 A 發生的先驗機率。P(B)是事件 B 發生的先驗機率。
在分類問題中,我們可以將 A 看作是類別,B 看作是特徵。因此,P(A|B) 表示在已知特徵 B 的情況下,樣本屬於類別 A 的機率。
樸素貝氏假設:
樸素貝氏分類器的關鍵假設是所有特徵之間相互獨立。這意味著在給定類別的情況下,一個特徵的出現不影響其他特徵的出現。這個假設簡化了計算複雜度,使得模型能夠快速訓練和預測。然而,在現實世界中,特徵之間通常存在相關性,因此這個假設往往是不成立的。
運作原理
樸素貝氏分類器的運作原理可以分為以下幾個步驟:
計算先驗機率: 計算每個類別的先驗機率
P(A),即訓練集中每個類別的樣本比例。計算條件機率: 計算在每個類別下,每個特徵的條件機率
P(B|A)。根據特徵的類型,可以使用不同的方法來計算條件機率:- 高斯樸素貝氏: 假設特徵服從高斯分佈,使用高斯分佈的機率密度函數來計算條件機率。
- 多項式樸素貝氏: 適用於離散特徵,例如文本資料中的詞頻。使用多項式分佈來計算條件機率。
- 伯努利樸素貝氏: 適用於二元特徵,例如文本資料中詞語是否出現。使用伯努利分佈來計算條件機率。
計算後驗機率: 對於給定的樣本,計算其屬於每個類別的後驗機率
P(A|B)。根據貝氏定理,有:P(A|B) = [P(B|A) * P(A)] / P(B)
由於
P(B)對於所有類別都是相同的,因此可以忽略,只需計算P(B|A) * P(A)並比較大小即可。由於樸素貝氏假設特徵之間相互獨立,因此
P(B|A)可以分解為每個特徵的條件機率的乘積:P(B|A) = P(b1|A) * P(b2|A) * ... * P(bn|A)
其中,
b1, b2, ..., bn是樣本的特徵值。預測類別: 選擇後驗機率最大的類別作為預測結果。
處理零機率問題:
在計算條件機率時,如果某個特徵在某個類別中沒有出現過,則其條件機率為 0,這會導致整個後驗機率為 0。為了避免這個問題,可以使用平滑技術,例如拉普拉斯平滑 (Laplace Smoothing) 或 Lidstone 平滑 (Lidstone Smoothing)。
實際應用
樸素貝氏分類器在許多領域都有廣泛的應用,包括:
- 文本分類: 垃圾郵件過濾、情感分析、新聞分類等。
- 醫學診斷: 疾病預測、藥物反應預測等。
- 信用風險評估: 貸款申請人信用評估。
- 推薦系統: 用戶興趣建模、商品推薦等。
案例:垃圾郵件過濾
在垃圾郵件過濾中,樸素貝氏分類器可以根據郵件的內容(例如,包含某些關鍵字、發件人地址等)來判斷郵件是否為垃圾郵件。模型會學習不同詞語與垃圾郵件之間的關係,並根據這些關係來判斷新郵件的類型。例如,如果郵件中包含大量「免費」、「促銷」等詞語,則模型可能會將其判斷為垃圾郵件。
常見誤區
- 特徵獨立性假設: 樸素貝氏分類器假設特徵之間相互獨立,這在現實世界中通常是不成立的。然而,即使這個假設不成立,樸素貝氏分類器在許多情況下仍然表現良好。這是因為樸素貝氏分類器對特徵之間的相關性不敏感,並且在高維度資料集上具有良好的泛化能力。
- 數值型特徵處理: 樸素貝氏分類器通常適用於離散特徵。對於數值型特徵,可以使用離散化方法將其轉換為離散特徵,或者使用高斯樸素貝氏分類器,假設特徵服從高斯分佈。
- 零機率問題: 在計算條件機率時,如果某個特徵在某個類別中沒有出現過,則其條件機率為 0,這會導致整個後驗機率為 0。可以使用平滑技術來避免這個問題。
- 模型解釋性: 樸素貝氏分類器具有良好的解釋性,可以很容易地理解模型是如何做出預測的。例如,可以查看每個特徵在每個類別下的條件機率,從而了解哪些特徵對預測結果有重要影響。
- 不適用於複雜關係: 由於其線性性質和特徵獨立性假設,樸素貝氏不擅長捕捉特徵之間複雜的非線性關係。對於需要捕捉複雜關係的任務,可能需要使用更複雜的模型,如神經網路或決策樹。
相關術語
常見問題
延伸學習
想看 樸素貝氏 的完整影片教學?前往 美第奇 AI 學院