经典朴素贝叶斯定理适合用于文本分类场景,垃圾邮件过滤是个典型的二分类场景。
先理解几个知识点:
1、联合概率分布P(x,y)=P(x|y).P(y) = P(y|x).P(x)
2、贝叶斯定理P(x|y)=P(y|x).P(x)/P(y)
3、条件独立:P(x,y|z) = P(x|z).P(y|z) 表示x和y是条件独立于z的;
4、平滑操作:概率乘积操作过程,只要有一个为0,结果就会为0,会影响到结果的正确性,通常可简单通过平滑操作解决,分子加一、分母加上词库的个数。
5、underflow、overflow处理:概率相乘会出现小数位数过多,计算机难以表达的underflow、overflow情况,通常可用加上log的方式计算,因为加上对数后的变化趋势和原函数方向是一致的。
6、先验概率:根据经验和分析得到的概率
模型训练过程
训练朴素贝叶斯模型需要做大量的统计工作,下面来看下一个完整的模型训练及应用流程。
1、准备100封邮件, 80封是正常邮件,20封是垃圾邮件,假设每封邮件有10个词语
2、100封邮件中是100*10=1000个词语,假设去重后有500个词语,将这500个词语作为语料库V;
3、计算语料库中的每个词语分别在正常邮件、垃圾邮件出现的概率(使用平滑的方法):
P(语料库词语|正常邮件)、P(语料库词语|垃圾邮件)
4、计算正常邮件和垃圾邮件的的先验概率分别为:P(正常)=80/100、P(垃圾)=20/100
通过上面4个步骤,得到了两个先验概率、预料库中每个