贝叶斯估计用于垃圾邮件分类

最近工作需要重新熟悉了贝叶斯估计理论。想起还是学生时候,自己写的作业,整理了一下,mark。

废话少说,直接上公式:

贝叶斯公式:Ai 是一个完备集合,i= 1...n,那么P(Ai|B)=P(B|Ai)/\sum( j=1:n) P(B|Aj)P(Aj),

解释一下: 这个公式是说,有n个条件,都会导致事情B发生,如果事情B发生了,我们可以推算各个条件出现的概率,或者说跟各个条件的关系程度。

举个栗子: 迟到,旷课都会导致扣A学分;现在A扣了学分,那么我们推算,这学期A迟到的概率是多少,A旷课的概率是多少。

上面还是废话,直接说在邮件分类的应用吧。

我们拿到邮件(图片无法处理,不考虑它,只考虑标题和内容的文字),

完备集:邮件的分类, 垃圾 正常;邮件里面都有的是 词组: 我们想知道的是:在特定词组X情况下,它是垃圾邮件和正常邮件的概率。

P(垃圾|X) = P(X|垃圾)*P(垃圾)/(P(X|垃圾)*P(垃圾)+P(X|正常)*P(正常))  (1)

右边的P(X|垃圾),P(X|正常),P(垃圾),P(正常)由训练集得来。

假设训练集各垃圾邮件和正常邮件各50封,那么P(垃圾),P(正常)各为0.5。 训练邮件词组假设100个, 根据他们在垃圾邮件出现的频率,计算每个词组的频率P(x|垃圾),同样计算这些词组正常邮件的频率。

下面计算,P(X|垃圾) ,P(X|正常);

X是z个词组集合,x1,x2,...xz,  P(X|垃圾) = sum(P(xi|垃圾)); 同样,P(X|正常)= sum(P(xi|正常));

这样,公式1的各个参数都有了,那么左边的结果就出来了。 我们设置阈值0.5。大于0.5的是垃圾邮件,小于0.5的是正常邮件。

ok 这样就完成理论推导。

下面就是代码实现了。前提你要有一个分词程序,网上可以自己找到,中文的英文的都有。剩下的就不是难题了。 

 

  

   

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值