使用朴素贝叶斯过滤垃圾邮件 -《Python3数据分析与机器学习实战》

 

近日再一次总结了朴素贝叶斯的一个最著名应用:垃圾邮件过滤,从数学知识到完成该项目的整个流程都详细记录了下来,并且详细解析了各个函数的功能,以方便自己日后再次翻阅,也希望对各位喜欢人工智能的同学有所帮助,有错误之处请多多指教。

目录

 

  1. 朴素贝叶斯分类器介绍及优缺点
  2. 数学知识
  3. 项目思路
  4. 完整代码
  5. 总结

1.朴素贝叶斯分类器介绍及优缺点

朴素贝叶斯分类器(Naive Bayes Classifier,简称NBC),以贝叶斯公式为数学基础,是一个简单的概率分类器,称其“朴素”是因为模型学习过程直接认为事物的各个特征是相互独立的。

优点:分类效率稳定,模型所需估计的参数很少,对缺失数据不敏感,算法相对简单,在数据较少的情况下仍然有效,可以处理多类别问题。

缺点:

2.数学知识

  1. 条件概率:p\left ( A|B \right )=\frac{p\left ( AB \right )}{p\left ( B \right )}
  2. 乘法公式:p\left ( AB \right )=P\left ( A|B \right )P\left ( B \right )=P\left ( B|A \right )P\left ( A \right )(由条件概率可得)
  3. 乘法公式的推广:p\left ( A_{1} A_{2}...A_{n}\right )=p\left ( A_{1} \right )p\left ( A_{2} |A_{1}\right )p\left ( A_{3} |A_{1}A_{2}\right )...p\left ( A_{n}|A_{1}A_{2} A_{3}...A_{n-1}\right )
  4. 全概率公式 :设B_{1},B_{2},...,B_{1},B_{2},B_{3},...是样本空间\Omega的一个划分,A为任一事件,则p\left ( A \right )=\sum_{i=1}^{\infty }p\left ( B_{i} \right )p\left ( A|B_{i} \right )
  5. 贝叶斯公式:p\left ( B_{i}|A \right )=\frac{p\left ( B_{i} \right )p\left ( A|B_{i} \right )}{p\left ( A \right )}=\frac{p\left ( B_{i} \right )p\left ( A|B_{i} \right )}{\sum_{j=1}^{\infty }p\left ( B_{j} \right )p\left ( A|B_{j} \right )}

3.项目思路

数据有两种,分别为垃圾邮件(spam邮件)和正常邮件(ham邮件),各有25个样本。取40个样本作为训练集,余下10个位测试集。任给一份邮件,如何判断是垃圾邮件还是正常邮件呢?由贝叶斯公式(‘c’代表该邮件为垃圾邮件,‘c1’表示正常邮件) : 

公式1:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值