贝叶斯垃圾邮件分类问题中联合概率的推导
来源:互联网 发布:网络谣言的危害 编辑:程序博客网 时间:2024/06/05 06:25
主旨
讨论贝叶斯垃圾邮件分类问题中联合概率的计算问题。通过借鉴现有的资料,整理出一种数学上等价,同时基于本科概率论课程较容易理解的计算公式。
背景知识
2002年Paul Graham提出了一种利用贝叶斯原理做垃圾邮件分类的方法[1],这种方法在应用中取得了良好的效果。阮一峰发表了一篇中文介绍资料[2]对此方法做了清晰、明确的介绍。
在Paul Graham提出的垃圾邮件分类算法中,涉及到使用文本中出现的多个单词判断当前文本是否是垃圾邮件的问题,即当文本中出现了多个单词,如何计算垃圾邮件的概率。在文献[2]中,第十部分“联合概率的计算”就是对这部分的描述。
问题导入
在[1]中,对于给定多个单词计算联合概率的原理并未涉及,而是从其他位置[3][4]引用结论,给出
其中r_i代表P{TRUE | 第i个条件成立},公式成立的两个假定
1) N个条件之间两两独立且
2) TRUE和FALSE的先验概率相等
此外文献[2]的作者给出了N = 2条件下的一种推导方法(参阅第十部分“联合概率的计算”),想证明上述公式。在我写作这篇文章的时候(2017年2月),[2]中间已经有不少公式已经不可见,好在通过搜索引擎,基本可以复现出[2]作者的推导过程如下
问题在于无论是文献[4]还是文献[2],对于上述公式的推导都不够易懂。从 [2]的读者评论区讨论就可以看到,很多读者不理解[2]的作者是如何定义出E1/E2两个事件并完成推导的,我也和这些读者一样,无法理解[2]的作者的推导方法。
[4]中同样给出了N = 2情况下公式的推导过程,但对于我来说,其中也有不少难以理解的步骤,例如假定S/J两者统计独立之后,给出的数学表达式就较为费解。在[2]的讨论区中,也没有人对[4]中的推导逻辑给予清晰的说明。
此外,上述公式中为了计算P,都需要计算P(S|Wi)。从文本中统计得到的Wi词频是P(Wi|S),如果要计算P(S|Wi),还要用贝叶斯公式计算一遍,从程序设计讲,如果能直接使用P(S|Wi)计算,则会直观的多。
本文受到[2]的讨论区中多名评论者的启发。
讨论与推导
定义:
Wi 为第i 个单词出现这一事件,i=1…N . 这里先从N=2 的情况开始分析。在分析中假定不同单词的出现概率互相独立。S 代表当前邮件是垃圾邮件,S¯¯¯ 代表当前邮件不是垃圾邮件。
问题可以描述为计算
根据贝叶斯公式,
考虑到[1][2]在文本中W1与W2统计独立的假定,
将这条推论代入上式,得到
注意:此处切不可由统计独立性误以为P(W1W2) = P(W1)P(W2).
根据全概率公式,上述公式可得到
扩展到N个单词的情形
在上式右边,
问题是,这样推出的公式是否与文献[1]或[2]中使用的联合概率公式等价?是等价的,N=2的情况下证明过程如下
根据贝叶斯公式
代入前述公式
根据[1]和[2]的假定
与[1]和[2]中给出的形式完全相同.
总结
针对贝叶斯垃圾邮件分类问题,本文利用概率论课程中学过的方法,推导出与[1]和[2]中等价的联合概率计算方法。
这个方法不但利于理解,而且其中需要的变量均为
参考文献
[1] http://www.paulgraham.com/spam.html
[2] http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_two.html
[3] http://www.paulgraham.com/naivebayes.html
[4] http://www.mathpages.com/home/kmath267.htm
- 贝叶斯垃圾邮件分类问题中联合概率的推导
- 联合概率分布函数的问题
- R 朴素贝叶斯 垃圾邮件分类
- 朴素贝叶斯与垃圾邮件分类
- Atitit 贝叶斯算法的原理以及垃圾邮件分类的原理
- kaggle冰山船只分类竞赛中遇到的Python列表推导式问题
- 发送垃圾邮件的问题
- 发送垃圾邮件的问题
- 整理-分类-朴素贝叶斯分类-垃圾邮件检测
- 朴素贝叶斯模型:文本分类+垃圾邮件分类
- 模式分类与应用-贝叶斯垃圾邮件分类
- [hdu5985]概率题的推导
- 先验概率,后验概率(贝叶斯),垃圾邮件过滤
- SVM 的推导、特点、优缺点、多分类问题及应用
- 垃圾邮件分类器的原理(1)
- 垃圾邮件分类器的原理(2)
- 朴素贝叶斯实现垃圾邮件分类------matlab实现
- 文本处理之贝叶斯垃圾邮件分类
- NYOJ 995 硬币找零
- D001-开发工具-SecureCRT
- 常见DES实现陷阱
- 2.11~2.12模拟赛
- java反编译后报错的解决办法
- 贝叶斯垃圾邮件分类问题中联合概率的推导
- 基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
- leetcode 500 keyboard row
- iOS开发tips-UITableView、UICollectionView行高/尺寸自适应
- [BZOJ4066]简单题(kd-tree)
- 第38篇 一对多自由控制语音(十八)及PHP实例- AJAXRSS 阅读器
- Maven教程学习网站
- 取字符
- 关于集合关键字的初步运用