本文重点
经过前面几次课程的学习,我们已经学会了贝叶斯算法,本节课程我们学习一些应用贝叶斯算法的工程技巧,来看看一下如何能够让贝叶斯算法更快一些。
取对数
C垃圾=p(恭喜|垃圾邮件)p(您|垃圾邮件)p(的|垃圾邮件)p(条件|垃圾邮件)p(已|垃圾邮件)p(达标|邮件)p(特|垃圾邮件)p(通知|垃圾邮件)p(您|垃圾邮件)p(申请|垃圾邮件)p(金卡|垃圾邮件)p(资格|垃圾邮件)
C正常=p(恭喜|正常邮件)p(您|正常邮件)p(的|正常邮件)p(条件|正常邮件)p(已|正常邮件)p(达标|正常邮件)p(特|正常邮件)p(通知|正常邮件)p(您|正常邮件)p(申请|正常邮件)p(金卡|正常邮件)p(资格|正常邮件)
如果多的概率p相乘,效率一定不会快,那么我们可以取log,这样相乘就变为了相加
logC垃圾=logp(恭喜|垃圾邮件)+logp(您|垃圾邮件)+logp(的|垃圾邮件)+logp(条件|垃圾邮件)+logp(已|垃圾邮件)+logp(达标|邮件)+logp(特|垃圾邮件)+logp(通知|垃圾邮件)+logp(您|垃圾邮件)+logp(申请|垃圾邮件)+logp(金卡|垃圾邮件)+logp(资格|垃圾邮件)
然后关于log计算,可以在训练阶段直接计算 logP ,然后把他们存在一张大的hash表里。在判断的时候直接提取hash表中已经计算好的对数概率,然后相加