貝葉斯分類器

貝葉斯分類器解決的是分類問題。

假設模型的輸入特徵爲x,輸出結果爲y。首先我們需要弄明白幾個概念:

  • 先驗概率:p(y)
  • 後驗概率:p(y|x)
  • 似然函數:p(x|y)
  • 證據因子:p(x)

極大似然估計

極大似然估計可以看做是一個訓練貝葉斯分類器的方法。

首先我們需要了解貝葉斯公式:
p(yix)=p(xyi)p(yi)mj=1p(xyj)p(yj) {p{ \left( {y\mathop{ {} } \nolimits_{ {i} } \left| x\right. } \right) } =\frac{ {p{ \left( {x \left| y\mathop{ {} } \nolimits_{ {i} } \right. } \right) } p{ \left( {y\mathop{ {} } \nolimits_{ {i} } } \right) } } } { { {\mathop{ \sum } \nolimits_{ {m} } ^{ {j=1} } {p{ \left( {x \left| y\mathop{ {} } \nolimits_{ {j} } \right. } \right) } p{ \left( {y\mathop{ {} } \nolimits_{ {j} } } \right) } } } } } }
其中,m爲輸出的分類類別個數。由於分母項:
mj=1p(xyj)p(yj)=p(x) { {\mathop{ \sum } \nolimits_{ {m} } ^{ {j=1} } {p{ \left( {x \left| y\mathop{ {} } \nolimits_{ {j} } \right. } \right) } p{ \left( {y\mathop{ {} } \nolimits_{ {j} } } \right) } } } =p{ \left( {x} \right) } }
不隨着輸出的不同而改變,先驗概率也是一個確定的值。所以想最大化預測的準確率p(yi|x),即在輸入第i類的x的情況下,輸出的yi逼近於1,僅僅需要最大化似然函數p(x|yi)。

如何用已知的數據最大化似然函數呢?我們將輸出結果爲yi的輸入x歸爲一個集合Di。我們假設,似然函數p(x|yi)具有確定的分佈(可以先假設爲正態分佈),我們要用Di去估計這個分佈的一些特定的參數,設這個分佈的參數向量爲θi。現在對於數據集Di關於θi的似然函數爲:
p(Diθi)=xDip(xθi) {p{ \left( {D\mathop{ {} } \nolimits_{ {i} } \left| \theta \mathop{ {} } \nolimits_{ {i} } \right. } \right) } ={\mathop{ \prod } \limits_{ {x \in D\mathop{ {} } \nolimits_{ {i} } } } {p{ \left( {x \left| \theta \mathop{ {} } \nolimits_{ {i} } \right. } \right) } } } }
由於概率的取值爲[0,1],所以Di內的元素個數較大時,上式的連乘操作在計算機運算中容易下溢出,所以我們常常將上式去log,這樣既不會造成下溢,也不改變其單調性。故極大似然估計可以寫爲:
argmaxθixDilog(p(xθi)) {\mathop{ {argmax} } \limits_{ { \theta \mathop{ {} } \nolimits_{ {i} } } } {\mathop{ \sum } \limits_{ {x \in D\mathop{ {} } \nolimits_{ {i} } } } {log{ \left( {p{ \left( {x \left| \theta \mathop{ {} } \nolimits_{ {i} } \right. } \right) } } \right) } } } }

樸素貝葉斯分類器

我們繼續看貝葉斯公式:
p(yix)=p(yi)p(xyi)p(x) {p{ \left( {y\mathop{ {} } \nolimits_{ {i} } \left| x\right. } \right) } =\frac{ {p{ \left( {y\mathop{ {} } \nolimits_{ {i} } } \right) } p{ \left( {x \left| y\mathop{ {} } \nolimits_{ {i} } \right. } \right) } } } { {p{ \left( {x} \right) } } } }
p(yi|x)表示在輸入是x的條件下,輸出是i類的概率。

樸素貝葉斯分類器的思想是將輸入x的每一維看成是獨立的,所以:
p(xyi)=k=1dp(xkyi) { {p{ \left( {x \left| y\mathop{ {} } \nolimits_{ {i} } \right. } \right) } =} {\mathop{ \prod } \limits_{ {k=1} } ^{ {d} } {p{ \left( {x\mathop{ {} } \nolimits_{ {k} } \left| y\mathop{ {} } \nolimits_{ {i} } \right. } \right) } } } }
其中d爲輸入數據的特徵個數。

這樣就可以通過極大似然估計算出每個似然函數的參數,比較貝葉斯公式分子上的值,哪個類最大就可以作爲輸出。從而可以通過貝葉斯公式求解分類問題。

侷限性

  • 似然函數的分佈不好確定,需要根據分類任務具體情況來決定,有時難以描述。
  • 輸入特徵之間不一定相互獨立。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章