貝葉斯分類器解決的是分類問題。
假設模型的輸入特徵爲x,輸出結果爲y。首先我們需要弄明白幾個概念:
- 先驗概率:p(y)
- 後驗概率:p(y|x)
- 似然函數:p(x|y)
- 證據因子:p(x)
極大似然估計
極大似然估計可以看做是一個訓練貝葉斯分類器的方法。
首先我們需要了解貝葉斯公式:
p(yi∣x)=∑mj=1p(x∣yj)p(yj)p(x∣yi)p(yi)
其中,m爲輸出的分類類別個數。由於分母項:
∑mj=1p(x∣yj)p(yj)=p(x)
不隨着輸出的不同而改變,先驗概率也是一個確定的值。所以想最大化預測的準確率p(yi|x),即在輸入第i類的x的情況下,輸出的yi逼近於1,僅僅需要最大化似然函數p(x|yi)。
如何用已知的數據最大化似然函數呢?我們將輸出結果爲yi的輸入x歸爲一個集合Di。我們假設,似然函數p(x|yi)具有確定的分佈(可以先假設爲正態分佈),我們要用Di去估計這個分佈的一些特定的參數,設這個分佈的參數向量爲θi。現在對於數據集Di關於θi的似然函數爲:
p(Di∣θi)=x∈Di∏p(x∣θi)
由於概率的取值爲[0,1],所以Di內的元素個數較大時,上式的連乘操作在計算機運算中容易下溢出,所以我們常常將上式去log,這樣既不會造成下溢,也不改變其單調性。故極大似然估計可以寫爲:
θiargmaxx∈Di∑log(p(x∣θi))
樸素貝葉斯分類器
我們繼續看貝葉斯公式:
p(yi∣x)=p(x)p(yi)p(x∣yi)
p(yi|x)表示在輸入是x的條件下,輸出是i類的概率。
樸素貝葉斯分類器的思想是將輸入x的每一維看成是獨立的,所以:
p(x∣yi)=k=1∏dp(xk∣yi)
其中d爲輸入數據的特徵個數。
這樣就可以通過極大似然估計算出每個似然函數的參數,比較貝葉斯公式分子上的值,哪個類最大就可以作爲輸出。從而可以通過貝葉斯公式求解分類問題。
侷限性
- 似然函數的分佈不好確定,需要根據分類任務具體情況來決定,有時難以描述。
- 輸入特徵之間不一定相互獨立。