半樸素貝葉斯分類器

半樸素貝葉斯分類器

樸素貝葉斯採用了「屬性條件獨立性假設」,但這個假設的確是有些草率了。由於每每屬性之間包含着各類依賴。因而,人們嘗試對這個假設進行必定程度的放鬆,由此產生了「半樸素貝葉斯分類器」(semi-naive Bayes classifiers)的學習方法。算法

半樸素貝葉斯分類器的基本想法是適當考慮一部分屬性間的相互依賴信息。獨依賴估計(One-Dependent Estimator,簡稱ODE)是半樸素貝葉斯分類器最經常使用的一種策略。顧名思義,獨依賴是假設每一個屬性在類別以外最多依賴一個其餘屬性,即性能

\[P(x|c_i)=\prod_{j=1}^d P(x_j|c_i,{\rm pa}_j).\]學習

其中,\({\rm pa}_j\)爲屬性\(x_i\)所依賴的屬性,稱爲\(x_i\)的父屬性。假設父屬性\({\rm pa}_j\)已知,那麼可使用下面的公式估計\(P(x_j|c_i,{\rm pa}_j)\)spa

\[P(x_j|c_i,{\rm pa}_j)=\frac{P(x_j,c_i,{\rm pa}_j)}{P(c_i,{\rm pa}_j)}.\]class

因而,問題的關鍵變成了如何肯定每一個屬性的父屬性。不一樣的作法產生了不一樣的獨依賴分類器。基礎

  • SPODE(Super-Parent ODE)假設全部的屬性都依賴於同一個屬性,稱爲超父。學習方法

  • TAN(Tree Augmented naive Bayes)則在最大帶權生成樹算法的基礎上發展的一種方法。變量

  • AODE(Averaged ODE)是一種集成學習的方法,嘗試將每一個屬性做爲超父來構建SPODE,與隨機森林的方法有所類似。擴展

下面具體描述一下TAN。方法

TAN

TAN的實施步驟以下:

  1. 計算任意屬性之間的條件互信息\[I(x_i,x_j|y)=\sum_{x_i,x_j;c_k\in Y}P(x_i,x_j|c_k)\log\frac{P(x_i,x_j|c_k)}{P(x_i|c_k)P(x_j|c_k)};\]
  2. 以屬性爲節點構建徹底圖,節點間的權重設爲相應的互信息;
  3. 構建此徹底圖的最大帶權生成樹,挑選根變量,將邊置爲有向;
  4. 加入類別結點\(y\),增長從\(y\)到每一個屬性的有向邊。

容易看出,條件互信息\(I(x_i,x_j|y)\)刻畫了屬性\(x_i\)\(x_j\)在已知類別狀況下的相關性。所以,經過最大生成樹算法,TAN實際上僅保留了強相關屬性之間的依賴性。

在這裏,咱們經過將屬性條件獨立性假設放鬆爲獨立依賴假設,得到了泛化性能的提高。那麼若是更進一步,考慮屬性間的高階依賴,可否能夠進一步提高泛化性能呢?也就是說,將\(P(x|c_i)=\prod_{j=1}^d P(x_j|c_i,{\rm pa}_j)\)中的\({\rm pa}_j\)擴展爲包含\(k\)個屬性的集合\({\rm\bf{pa}}_j\),從而將ODE拓展爲\(k\)DE。須要注意的是,隨着\(k\)的增長,準確地估計機率\(P(x_j|c_i,{\rm\bf{pa}_j})\)所需的訓練樣本數量將以指數級增長。所以,若訓練數據很是充分,泛化性能有可能提高;但在有限樣本的條件下,則會陷入估計高階聯合機率的泥沼。

相關文章
相關標籤/搜索