2009年2月20日 星期五

Naive Bayes Classifier 的原理(單刀直入版)

這篇內容和上篇《Naive Bayes Classifier 的原理》一樣,只是改採簡明厄要的寫法。話說我以前都寫這種風格的說。

問題描述

給定由屬性 A1, A2, A3 和類別 C1, C2 組成的 training data(例如 (A1, A2, C1) 或 (A1, A3, C2))。求 A1, A2, A3 三者任意組合的情況下,應該分類到 C1 還是 C2。

Naive Bayes Classifier 定義

以 (A1, A2) 為例說明:

P(C1 | A1, A2) = P(A1, A2 | C1) * P(C1) / P(A1, A2)

比較 P(C1 | A1, A2) 和 P(C2 | A1, A2) ,若前者較高,就將 (A1, A2) 分類到 C1,反之分到 C2。

注意 P(C1 | A1, A2) 和 P(C2 | A1, A2) 分母一樣,可以忽略不算。

Naive Bayes Classifier 原理說明

相較於直接數 training data 裡各種組合和對應到類別的數量,Naive Bayes Classifier 的優勢是在 training data 不足時,仍能處理各種屬性組合。也就是說,即使 training data 內沒有出現過 (A1, A2, C1) 和 (A1, A2, C2),Naive Bayes Classifier 仍可估計出 P(C1 | A1, A2) 和 P(C2 | A1, A2) 何者機率較高。

原因是 Naive Bayes Classifier 假設所有屬性對其類別具有 conditional independence ,所以 P(C1 | A1, A2) 可拆成如下的算法:

P(A1, A2 | C1) = P(A1 | C1) * P(A2 | C1)

同理可算出 P(A1, A2 | C2) ,所以能比較 P(C1 | A1, A2) 和 P(C2 | A1, A2) 的值。注意真實情況下 conditional independence 不見得會成立。

2 則留言:

  1. 謝謝分享!

    請問 "上篇《Naive Bayes Classifier 的原理》一樣" ,是指這一篇:http://fcamel-fc.blogspot.hk/2009/02/naive-bayes-classifier_19.html嗎?

    本文中的超連結失效了。

    回覆刪除
  2. 是的, 已修正超連結, 謝謝告知

    回覆刪除