场景:垃圾邮件预测
目标:
$p(y|w) = frac{p(w|y)p(y)}{p(w)}$
对于一封邮件来说,它的单词相同,所以$p(w)$可以不关心,计算得到分子就能知道更属于哪一类
所以,关键在于计算$p(y)$以及$p(w_i|y)$,即根据数据估计这些値
假设w为(0,1,0,.,1,..,0),即邮件中是否出现词典中单词,n为词典长度
使用最大似然估计:
$logprod_i^m p(w_i)|y_i)p(y_i) = sum_i^m [log p(y_i)sum_j^n log p(w_{ij}|p(y_i))]$
得到
$p(y=1) = frac{sum [y_i==1]}{m}$
$p(w_k|y=1) = frac{sum [y_i==1 and w_k==1]}{sum [y_i==1]}$
在做预测时,有些单词在以前邮件中内有出现,所以,这些单词的概率
$p(w_k|y=1)=0$,这种情况会使$p(y=1|w)=0$,做拉普赖斯平滑
$p(w_k|y=1) = frac{1+sum [y_i==1 and w_k==1]}{c+sum [y_i==1]}$
c为$w_k$可取値的个数,此处为0,1,所以c=2