概念
- 零概率問題:在計算事件的概率時,如果某個事件在觀察樣本庫(訓練集)中沒有出現過,會導致該事件的概率結果是 $0$ 。這是不合理的,不能因為一個事件沒有觀察到,就被認為該事件一定不可能發生(即該事件的概率為 $0$ )。
拉普拉斯平滑(Laplacian smoothing) 是為了解決零概率的問題。
- 法國數學家 拉普拉斯 最早提出用 加 $1$ 的方法,估計沒有出現過的現象的概率。
- 理論假設:假定訓練樣本很大時,每個分量 $x$ 的計數加 $1$ 造成的估計概率變化可以忽略不計,但可以方便有效的避免零概率問題
具體公式
對於一個隨機變數 $\mathrm{z} $ , 它的取值範圍是 $\{1,2,3 \ldots, \mathrm{k}\} $, 對於 $\mathrm{m} $ 次試驗後的觀測 結果 $ \left\{\mathrm{z}^{(1)}, \mathrm{z}^{(2)}, \mathrm{z}^{(3)}, \ldots, \mathrm{z}^{(\mathrm{m})}\right\} $, 極大似然估計按照下式計算:
$\varphi_{j}=\frac{\sum_{i=1}^{m} I\left\{z^{(i)}=j\right\}}{m}$
使用 Laplace 平滑後, 計算公式變為:
$\varphi_{j}=\frac{\sum_{i=1}^{m} I\left\{z^{(i)}=j\right\}+1}{m+\mathrm{k}}$
即在分母上加上取值範圍的大小, 在分子加 $1$ 。
總結: 分子加一,分母加 $K$,$K$ 代表類別數目。
應用場景舉例
假設在文字分類中,有 $3$ 個類:$C_1$、$C_2$、$C_3$
在指定的訓練樣本中,某個詞語 $K_1$ ,在各個類中觀測計數分別為 $0$,$990$,$10$。
則對應 $K_1$ 的概率為 $0,0.99,0.01$。
顯然 $C_1$ 類中概率為 $0$,不符合實際。
於是對這三個量使用拉普拉斯平滑的計算方法如下:
$1/1003 = 0.001$,$991/1003=0.988$,$11/1003=0.011$
在實際的使用中也經常使用加 $λ$($0≤λ≤1$)來代替簡單加 $1$。如果對 $N$個計數都加上 $λ$,這時分母也要記得加上 $N*λ$。