貝葉斯是個好東西(頻率學派的不這麼看),好多模型均可以從貝葉斯角度來解釋,並且貝葉斯決策理論也是做爲最優分類,給其餘模型作錯誤上限什麼的參照的。對於分類來講,在全部相關機率都已知的狀況下,貝葉斯決策論考慮如何基於這些機率和誤判損失來選擇最優的類別標記。然而貝葉斯又分樸素貝葉斯、半樸素貝葉斯、貝葉斯網等等。
\[P(X,Y)=P(X|Y)P(Y) \tag{0.1}\]函數
所謂樸素貝葉斯,就是基於特徵條件是相互獨立的假設下,學習輸入和輸出的聯合機率分佈,因此它是一個生成模型。
假設輸入空間是\(\chi \subseteq R^n\)爲n維向量的集合,輸出空間是類別標記集合(標籤)\(y \in \cal Y\).X是定義在輸入空間\(\chi\)上的隨機向量,Y是定義在輸出空間\(\cal Y\)上的隨機變量。P(X,Y)是X和Y的聯合機率分佈。假設訓練集:
\[T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}\]
是由P(X,Y)獨立同分布生成的。
樸素貝葉斯就是經過訓練集學習數據的聯合機率分佈,而由於能夠經過貝葉斯公式轉換成先求\(P(Y=c_k)\),\(k=1,2,...,K\)和\(P(X=x|Y=c_k)\).而由於
\[P(X=x|Y=c_k)=P(X^{(1)},X^{(2)},...,X^{(n)}|Y=c_k)\]
能夠看出訓練集每一個特徵之間是存在某種潛在關聯的。若是特徵仍是連續值,那麼基本上就是指數級的參數了。若是假設\(x^{(j)}\)可取值有\(S_j\)個,j=1,2,..,n,Y取值有K個,那麼參數個數爲\(K\prod_{j=1}^nS_j\)。
樸素貝葉斯就是將其當作是相互獨立的,由於這個假設條件很強,因此也是樸素貝葉斯的名字由來。即:
\[\begin{eqnarray} P(X=x|Y=c_k) &=&P(X^{(1)}=x^{(1)},X^{(n)}=x^{(n)}|Y=c_k)\\ &=&\prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k) \end{eqnarray}\]
從而
\[\begin{eqnarray}P(Y=c_k|X=x) &=&\frac{\frac{P(Y=c_k,X=x)}{P(X=x)}}{\frac{\sum_i^KP(Y=c_i,X=x)}{P(X=x)}}\\ &=& \frac{P(Y=c_k,X=x)}{\sum_i^KP(Y=c_i,X=x)}\\ &=& \frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_i^KP(X=x|Y=c_i)P(Y=c_i)}\\ &=& \frac{P(Y=c_k)\prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k)}{\sum_i^KP(Y=c_k)\prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k)} \end{eqnarray}\]
因此,取分類機率最大的那個類別,做爲該樣本的類別,即:
\[y=f(x)=argmax_{c_k}P(Y=c_k|X=x)\]
由於分母對於每一個類別機率比較都是無心義的,因此上面式子等同於:
\[y=argmax_{c_k}P(Y=c_k)\prod_{i=1}^nP(X^{(i)}=x^{(i)}|Y=c_k) \]
後驗機率最大化含義:
樸素貝葉斯法將實例分到後驗機率最大的類中,這等價於指望風險最小化。
如咱們選擇一個0-1損失函數:
\[L(Y,f(X))= \begin{cases} 1,&\text Y\neq f(X) \\ 0,& \text Y=f(X) \end{cases}\]
其中\(f(X)\)是分類決策函數,這時候,指望風險函數爲:
\[R_exp(f)=E[L(Y,f(X))]\]
ps:《機率論及其應用 第一卷第三版》170頁:
定義:令X爲一個隨機變量,其可能取值爲\(x_1,x_2,...\),且其對應的機率爲\(f(x_1),f(x_2)\),諾下列級數絕對收斂,則定義其爲級數\(X\)的指望值或均值:
\[E(X)=\sum x_kf(x_k)\]
定理1: 任一函數\(\phi(x)\),定義一個新的隨機變量\(\phi(X)\),若是\(\phi(X)\)具備有限指望值,則:
\[E(\phi(X))=\sum\phi(x_k)f(x_k)\]
回到指望風險函數,由於此時是給定一個測試樣本,則\(X=x\)是固定的,則
\[R_exp(f) = \sum_{k=1}^KL(c_k,f(x))P(c_k|x)\]學習
爲了使指望風險最小化,則是上式最小化,由於類別標籤是有限個,因此等效於:
\[\begin{eqnarray}f(x) &=&{argmin}_{y \in \cal Y}\sum_{k=1}^KL(c_k,y)P(c_k|x)\\ &=&argmin_{y \in \cal Y}\sum_{k=1}^KP(y \neq c_k|x)\\ &=&argmin_{y \in \cal Y}(1-P(y=c_k|x))\\ &=&argmax_{y \in \cal Y}P(y=c_k|x)\\ &=&argmax_{c_k}P(c_k|x) \end{eqnarray}\]測試
通過上面的敘述,能夠看出樸素貝葉斯學習過程,就是爲了計算\(P(Y=c_k)\)和\(P(X^{(j)}=x^{(j)}|Y=c_k)\)
舉例:如給定下面這個訓練集,在測試樣本爲\(x=(2,S)^T\)時,求其預測的標籤:
spa
\(P(X^{(1)}=1|Y=-1)=\frac{3}{6}\),\(P(X^{(1)}=2|Y=-1)=\frac{2}{6}\),\(P(X^{(1)}=3|Y=-1)=\frac{1}{6}\)。
\(P(X^{(2)}=S|Y=-1)=\frac{3}{6}\),\(P(X^{(2)}=M|Y=-1)=\frac{2}{6}\),\(P(X^{(2)}=L|Y=-1)=\frac{1}{6}\)。
則對於測試樣本\(x=(2,S)^T\),計算每一個類別的機率,而後取機率最大的那個:
\[P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{9}{15}\frac{3}{9}\frac{1}{9}=\frac{1}{45}\]
\[P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{6}{15}\frac{2}{6}\frac{3}{6}=\frac{1}{15}\]
由此,分到-1類別。
貝葉斯估計:
由於如上的極大似然估計,會必定狀況致使某些機率爲0,這時候就會影響到機率計算了,因此爲了不這種狀況,解決方法是貝葉斯估計.假設一共N個訓練樣本:\(T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}\),其中每一個訓練樣本特徵維度爲n,\(x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})T\)。當且其中第i個樣本的第j個特徵有離散取值集合有\(S_j\)個,爲\(x_i^{(j)}\in \{a_{j1},a_{j2},...,a_{jS_j}\}\)
1)條件機率的貝葉斯估計是:
\[P_\lambda(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda}{\sum_{i=1}^N I(y_i=c_k)+S_j\lambda}\]
即在原來的基礎上:分子加一個常量,且分母加全部分子常量的和,從而保證新的公式可以知足機率的定義。當常量\(\lambda=1\)時,稱之爲拉普拉斯平滑;
對於先驗機率的貝葉斯估計:
\[P_\lambda(Y=c_k)=\frac{\sum_{i=1}^N I(y_i=c_k)+\lambda}{N+K\lambda}\]blog
2017/03/27 第一次修改!
參考資料:
[] 李航,統計學習方法class