基于朴素贝叶斯+Python实现垃圾邮件分类和结果分析

本文介绍了使用朴素贝叶斯原理和Python实现垃圾邮件分类的方法,并详细分析了不同P(not_appear)设置下误判情况,展示了误判次数与总误判次数的关系,以及误判邮件的成分分析。
摘要由CSDN通过智能技术生成

基于朴素贝叶斯+Python实现垃圾邮件分类

朴素贝叶斯原理

请参考: 贝叶斯推断及其互联网应用(二):过滤垃圾邮件

Python实现

源代码主干来自: python实现贝叶斯推断——垃圾邮件分类

我只是加了注释,然后做了对结果的分析统计的输出添加。

源码下载: GitHub:下载NaiveBayesEmail.py

本文原载: 基于朴素贝叶斯+Python实现垃圾邮件分类

结果分析

仅出现在垃圾邮件(或非垃圾邮件)中的单词在非垃圾邮件(或垃圾邮件)中的概率设为P(not_appear)

1)P(not_appear) = 0.01时的结果:

去停用词结果:
去了停用词

不去停用词结果:
不去停用词

2)P(not_appear) = 0.05时的结果:

去停用词结果:
去停用词

不去停用词结果:
不去停用词

可见,

  • 去不去停用词差别不大;
  • P(not_appear) 越大越会把spam误判成ham。

3)[把垃圾邮件误判成非垃圾邮件的次数,总误判次数] 对应关系查看

  • Rate of mistaking spam for ham in 100 times when P(not_appear) = 0.05 without stopwords removal.

  • [wrong_spamToham, wrong]

结果1:
[[1, 1], [1, 1], [2, 2], [2, 2], [2, 2], [3, 3], [1, 1], [2, 2], [2, 2], [4, 4], [3, 3], [1, 1], [1, 1], [2, 2], [5, 5], [1, 1], [1, 1], [1, 1], [1, 1], [2, 2], [2, 2], [-1], [2, 2], [1, 1], [2, 2], [-1], [3, 3], [2, 2], [1, 1], [1, 1], [2, 2], [-1], [4, 4], [1, 1], [3, 3], [2, 2], [2, 2], [3, 3], [2, 2], [3, 3], [2, 2], [2, 2], [1, 1], [1, 1], [-1], [1, 1], [1, 1], [2, 2], [-1], [2, 2], [1, 1], [2, 2], [1, 1], [-1], [2, 2], [2, 2], [2, 2], [3, 3], [4, 4], [1, 1], [2, 2], [1, 1], [2, 2], [3, 3], [3, 3], [-1], [3, 3], [2, 2], [2, 2], [2, 2], [2, 2], [3, 3], [3, 3], [2, 2], [5, 5], [2, 2], [-1], [4, 4], [3, 3], [4, 4], [1, 1], [3, 3], [1, 1], [1, 1], [-1], [1, 1], [1, 1], [1, 1], [3, 3], [2, 2], [1, 1], [2, 2], [4, 4], [2, 2], [3, 3], [3, 3], [2, 2], [1, 1], [2, 2], [1, 1]]

结果2:
[[1, 1], [1, 1], [4, 4], [1, 1], [2, 2], [1, 1], [3, 3], [-1], [-1], [4, 4], [1, 1], [2, 2], [-1], [3, 3], [5, 5], [2, 2], [1, 1]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值