近日再一次总结了朴素贝叶斯的一个最著名应用:垃圾邮件过滤,从数学知识到完成该项目的整个流程都详细记录了下来,并且详细解析了各个函数的功能,以方便自己日后再次翻阅,也希望对各位喜欢人工智能的同学有所帮助,有错误之处请多多指教。
目录
- 朴素贝叶斯分类器介绍及优缺点
- 数学知识
- 项目思路
- 完整代码
- 总结
1.朴素贝叶斯分类器介绍及优缺点
朴素贝叶斯分类器(Naive Bayes Classifier,简称NBC),以贝叶斯公式为数学基础,是一个简单的概率分类器,称其“朴素”是因为模型学习过程直接认为事物的各个特征是相互独立的。
优点:分类效率稳定,模型所需估计的参数很少,对缺失数据不敏感,算法相对简单,在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:
2.数学知识
- 条件概率:
- 乘法公式:
(由条件概率可得)
- 乘法公式的推广:
- 全概率公式 :设
是样本空间
的一个划分,A为任一事件,则
- 贝叶斯公式:
3.项目思路
数据有两种,分别为垃圾邮件(spam邮件)和正常邮件(ham邮件),各有25个样本。取40个样本作为训练集,余下10个位测试集。任给一份邮件,如何判断是垃圾邮件还是正常邮件呢?由贝叶斯公式(‘c’代表该邮件为垃圾邮件,‘c1’表示正常邮件) :
公式1: