朴素贝叶斯-垃圾邮件判断-加一平滑处理-详细解释

朴素贝叶斯-垃圾邮件分类器代码实现参考上一篇文章
本篇文章主要详细的讲解一下采用朴素贝叶斯对垃圾邮件进行判断的过程。
1.先熟悉一下朴素贝叶斯公式:
在这里插入图片描述
即:
在这里插入图片描述
2.判断一封邮件是否为垃圾邮件可以简化为如下概率问题:
①、P(垃圾|邮件内容): 一个邮件内容为垃圾邮件的概率。
②、P(正常|邮件内容): 一个邮件内容为正常邮件的概率。

3.先熟悉一下单词概率计算方法:
例子:
下图中:
①、蓝色区域代表正常邮件
②、橙色代表垃圾邮件
③、假如每封邮件10个词汇。
④、红色邮件代表:邮件中出现了几次“购买”词汇

在这里插入图片描述
则:
正常邮件含有”购买“词的概率是:
①、(1+2)/24乘10 = 3/240: 24乘10表示一共有24封正常邮件,每封邮件有10个单词。
垃圾邮件含有”购买“词的概率是:
②、(1+1+1+3+1)/12乘10 = 7/120: 12乘10表示一共有12封垃圾邮件,其中每封邮件有10个单词。
—————————————————————————

4,ok,接下来开始构建贝叶斯模型:
现在已知有训练样本如下:
①、垃圾邮件三封,一共8个词,内容如下:
1.点击 更多 信息
2.最新 产品
3.信息 点击 链接
②、正常邮件三封一共6个词:
1.开会
2.信息 详见 邮件
 3.最新 信息
现在有一封新邮件,内容如下:
在这里插入图片描述
要求判断该邮件是否为垃圾邮件。步骤如下:
①、构建字典词库: D={“点击”,“更多”,“信息”,“最新”,“产品”,“链接”,“开会”,“详见”,“邮件”}
②、直接求P(垃圾|“最新“,”产品“,”点击“,”链接“,”产品“)和P(正常|“最新“,”产品“,”点击“,”链接“,”产品“)的概率比较难,所以通过朴素贝叶斯公式可得:
     a. 垃圾邮件的概率:P(“最新“,”产品“,”点击“,”链接“,”产品“ | 垃圾) * P(垃圾) / P(“最新“,”产品“,”点击“,”链接“,”产品“)
     b. 正常邮件的概率:P(“最新“,”产品“,”点击“,”链接“,”产品“ | 正常) * P(正常) / P(“最新“,”产品“,”点击“,”链接“,”产品“)
  ③、由于分母一样,比较两概率大小的时候,只用比较分子即转为下面的式子:
      a. 垃圾邮件的概率:P(““最新“,”产品“,”点击“,”链接“,”产品“| 垃圾) * P(垃圾)
      b. 正常邮件的概率:P(“最新“,”产品“,”点击“,”链接“,”产品“ | 正常) * P(正常)
  ④、求解、③中a,b的式子最终化为下面的式子:
   ①、P(最新“ | “垃圾”) * P(”产品“ | “垃圾”) * P(”点击“ | “垃圾”) * P(”链接“ | “垃圾”) * P(”产品“ | “垃圾”) * P(垃圾)
   ②、P(“最新” | “正常”) * P(“产品” | “正常”) * P(“点击” | “正常”) * P(“链接” | “正常”) * P(“产品” | “正常”) * P(正常)
   ⑤、根据已知信息计算邮件中词汇的概率
   在这里插入图片描述
则:
⑥、④中a,b计算得:
a. P(最新“ | “垃圾”) * P(”产品“ | “垃圾”) * P(”点击“ | “垃圾”) * P(”链接“ | “垃圾”) * P(”产品“ | “垃圾”) * P(垃圾) = (1/8) * (1/8) * (2/8) * (1/8) * (1/8)
b. P(“最新” | “正常”) * P(“产品” | “正常”) * P(“点击” | “正常”) * P(“链接” | “正常”) * P(“产品” | “正常”) * P(正常) = (1/6) * 0 * 0 * 0 * 0
c. 计算出来正常邮件中包含大量的0,导致概率结果为0
⑦、加入平滑改进
平滑的思想:即便一个单词不会出现,我们仍然给他一个很小的概率,保证该概率不会影响总体的计算,但又要保证,整体的概率之和为1.所有有下面的式子:
P(w|y=c) = (类别为c的语料库中的单词w出现的次数+1) / (类别为c的语料库中包含的所有单词个数+v)
v为词典的大小, 在本例子中即为9,D={“点击”,“更多”,“信息”,“最新”,“产品”,“链接”,“开会”,“详见”,“邮件”}
在这里插入图片描述
   ⑧、求出结果:
    a. 垃圾邮件的概率:(2/17)(2/17)(3/17)(1/17)(2/17)
    b. 正常邮件的概率:(2/15)(1/15)(1/15)(1/15)(1/15)
   結論:该邮件为垃圾邮件

  1. 注意:
       一般由于概率非常小,相乘以后,可能会出现超出计算器能表示的数值。所以可以将两式子添加log,将式子转为求和运算,不影响比较大小的值即:
       ①、垃圾邮件的概率:Log[(2/17)(2/17)(3/17)(1/17)(2/17)] = log(10/17)
       ②、正常邮件的概率:Log[2/15)(1/15)(1/15)(1/15)(1/15)] = log(6/15)
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值