12/21/2017 11:55:07 AM算法
貝葉斯分類器的出發點是貝葉斯定理網絡
\[P(A|B)=\frac{P(B|A)P(A)}{P(B)}.\]app
貝葉斯定理由英國學者托馬斯·貝葉斯(1702~1763)提出,於1763年被髮表。從發表的時間來看,這個定理的背後確定故事不少。你們能夠去了解一下相關的歷史。下面,咱們來解釋一下貝葉斯分類器的原理。機器學習
首先咱們來描述一下須要解決的問題。假設有\(N\)種可能的類別標記,即\(Y=\{c_1,c_2,\cdots,c_N\}\)。那麼對於樣本\(\boldsymbol{x}\),它屬於哪一類呢?性能
在這裏,咱們首先算出樣本\(\boldsymbol{x}\)屬於第\(i\)個類的機率,即\(P(c_i|\boldsymbol{x})\);而後,經過比較全部的\(P(c_i|\boldsymbol{x})\)獲得樣本\(\boldsymbol{x}\)所屬的最佳類別。因而如何計算\(P(c_i|\boldsymbol{x})\)便稱爲了問題的關鍵。學習
將類別\(c_i\)和樣本\(\boldsymbol{x}\)代入到上面的貝葉斯公式中,獲得測試
\[P(c_i|\boldsymbol{x})=\frac{P(\boldsymbol{x}|c_i)P(c_i)}{P(\boldsymbol{x})}.\]spa
通常來講,咱們稱\(P(c_i)\)爲先驗機率,稱\(P(\boldsymbol{x}|c_i)\)爲條件機率,而\(P(\boldsymbol{x})\)是用於歸一化的證據因子。對於\(P(\boldsymbol{c_i})\),咱們能夠經過訓練樣本中類別爲\(c_i\)的樣本所佔的比例進行估計;此外,因爲只須要找出最大的\(P(c_i|\boldsymbol{x})\),所以咱們並不須要計算\(P(\boldsymbol{x})\)。blog
因而,當求出條件機率\(P(\boldsymbol{x}|c_i)\),問題便完美的解決了。但是問題並不簡單。get
爲了求解條件機率\(P(\boldsymbol{x}|c_i)\),人們基於不一樣假設提出了許多方法。
假設樣本\(\boldsymbol{x}\)包含\(d\)個屬性,即\(\boldsymbol{x}=\{x_1,x_2,\cdots,x_d\}\)。因而有
\[P(\boldsymbol{x}|c_i)=P(x_1,x_2,\cdots,x_d|c_i).\]
這個聯合機率難以從有限的訓練樣本中直接估計獲得。因而,樸素貝葉斯(Naive Bayesian,簡稱NB)採用了「屬性條件獨立性假設」:對已知類別,假設全部屬性相互獨立。因而有
\[P(x_1,x_2,\cdots,x_d|c_i)=\prod_{j=1}^d P(x_j|c_i).\]
這樣的話,咱們就能夠很容易地推出相應的斷定準則了:
\[h_{nb}(\boldsymbol{x})=\mathop{\arg \max}_{c_i\in Y} P(c_i)\prod_{j=1}^dP(x_j|c_i).\]
若是\(x_j\)是標籤屬性,那麼咱們能夠經過計數的方法估計\(P(x_j|c_i)\)
\[P(x_j|c_i)=\frac{P(x_j,c_i)}{P(c_i)}\approx\frac{\#(x_j,c_i)}{\#(c_i)}.\]
其中,\(\#(x_j,c_i)\)表示在訓練樣本中\(x_j\)與\(c_i\)共同出現的次數。
若是\(x_j\)是數值屬性,一般咱們假設類別\(c_i\)中的全部樣本第\(j\)個屬性的值服從正態分佈。咱們首先估計這個分佈的均值\(\mu\)和方差\(\sigma\),而後計算\(x_j\)在這個分佈中的機率密度\(p(x_j|c_i)\)。
下面咱們經過經典的西瓜問題來舉個例子。
訓練集如上,咱們如今對下面的測試例「測1」進行分類
首先估計類先驗機率\(P(c_i)\),有
\begin{align}
&P(好瓜=是)=\frac{8}{17}=0.471 \newline
&P(好瓜=否)=\frac{9}{17}=0.529
\end{align}
而後,爲每一個屬性估計條件機率(這裏,對於連續屬性,假定它們服從正態分佈)
因而,有
\begin{align}
P(&好瓜=是)\times P_{青綠|是} \times P_{蜷縮|是} \times P_{濁響|是} \times P_{清晰|是} \times P_{凹陷|是}\newline
&\times P_{硬滑|是} \times p_{密度:0.697|是} \times p_{含糖:0.460|是} \approx 0.063 \newline\newline
P(&好瓜=否)\times P_{青綠|否} \times P_{蜷縮|否} \times P_{濁響|否} \times P_{清晰|否} \times P_{凹陷|否}\newline
&\times P_{硬滑|否} \times p_{密度:0.697|否} \times p_{含糖:0.460|否} \approx 6.80\times 10^{-5}
\end{align}
因爲$0.063>6.80\times 10^{-5} $,所以,樸素貝葉斯分類器將測試樣本「測1」判別爲「好瓜」。
這裏須要注意的問題,還有
數值下溢問題:多個機率值相乘,獲得的結果每每很是小;一般採用取對數的方式,將連乘轉化爲連加,以免數值下溢。
平滑:某些屬性值在訓練集中沒有與某個類同時未出現,如「敲聲=清脆,好瓜=是」,這樣將獲得\(P_{清脆|是}=0\);爲避免這樣的狀況出現,常使用拉普拉斯修正。
樸素貝葉斯採用了「屬性條件獨立性假設」,但這個假設的確是有些草率了。由於每每屬性之間包含着各類依賴。因而,人們嘗試對這個假設進行必定程度的放鬆,由此產生了「半樸素貝葉斯分類器」(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)\):
\[P(x_j|c_i,{\rm pa}_j)=\frac{P(x_j,c_i,{\rm pa}_j)}{P(c_i,{\rm pa}_j)}.\]
因而,問題的關鍵變成了如何肯定每一個屬性的父屬性。不一樣的作法產生了不一樣的獨依賴分類器。
SPODE(Super-Parent ODE)假設全部的屬性都依賴於同一個屬性,稱爲超父。
TAN(Tree Augmented naive Bayes)則在最大帶權生成樹算法的基礎上發展的一種方法。
AODE(Averaged ODE)是一種集成學習的方法,嘗試將每一個屬性做爲超父來構建SPODE,與隨機森林的方法有所類似。
下面具體描述一下TAN。
TAN的實施步驟以下:
容易看出,條件互信息\(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})\)所需的訓練樣本數量將以指數級增長。所以,若訓練數據很是充分,泛化性能有可能提高;但在有限樣本的條件下,則會陷入估計高階聯合機率的泥沼。
貝葉斯網絡(Bayesian network)也稱信念網(belief network),它藉助有向無環圖(Directd Acyclic Graph,簡稱DAG)來刻畫屬性之間的依賴關係,並使用條件機率表(Conditional Probability Table,簡稱CPT)來描述屬性的聯合機率分佈。
具體來講,一個貝葉斯網絡\(B\)由結構\(G\)和參數\(\Theta\)兩部分構成,即\(B=(G,\Theta)\)。網絡結構\(G\)是一個有向無環圖,其中的每個結點對應一個屬性,若兩個屬性由直接依賴關係,則它們由一條邊鏈接起來;參數\(\Theta\)則是定量描述這種依賴關係。假設屬性\(x_i\)在\(G\)中的父節點集爲\(\pi_i\),則\(\Theta\)包含了每一個屬性的條件機率表\(\theta_{x_i|\pi_i}=P_{B}(x_i|\pi_i)\)。
下面給出了西瓜問題的一種貝葉斯網結構以及屬性「根蒂」的條件機率表。
未完待續...[後面太難,頭昏腦漲]
[1] 周志華. 機器學習[M]. 清華大學出版社, 2016.
本文連接:http://www.superzhang.site/blog/classification-based-on-bayesian