贝叶斯算法介绍
一. 贝叶斯过滤算法的基本步骤
1) 收集大量的垃圾邮件和非垃圾邮件,建立垃圾邮件集和非垃圾邮件集。
2)
提取邮件主题和邮件体中的独立字串例如
ABC32,¥234等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。按照上述的方法分别处理垃圾邮件集和非垃圾邮件集中的所有邮件。
3)
每一个邮件集对应一个哈希表,hashtable_good对应非垃圾邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。
4)
计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)
5)
综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:
A事件----邮件为垃圾邮件;
t1,t2
…….tn代表TOKEN串
则P(A|ti)表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。
设
P1(ti)=(ti在hashtable_good中的值)
P2(ti)=(ti在hashtable_
bad中的值)
则 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
6) 建立新的哈希表
hashtable_probability存储TOKEN串ti到P(A|ti)的映射
7) 至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表
hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。
当新到一封邮件时,按照步骤2)生成TOKEN串。查询hashtable_probability得到该TOKEN
串的键值。
假设由该邮件共得到N个TOKEN串,t1,t2…….tn,
hashtable_probability中对应的值为P1,P2,。。。。。。PN,
P(A|t1 ,t2,
t3……tn)表示在邮件中同时出现多个TOKEN串t1,t2…….tn时,该邮件为垃圾邮件的概率。
由复合概率公式可得
P(A|t1 ,t2,
t3……tn)=(P1*P2*。。。。PN)/[P1*P2*。。。。。PN+(1-P1)*(1-P2)*。。。(1-PN)]
当P(A|t1 ,t2,
t3……tn)超过预定阈值时,就可以判断邮件为垃圾邮件。
二. 贝叶斯过滤算法举例
例如:一封含有“fa#gong”字样的垃圾邮件
A
和 一封含有“法律”字样的非垃圾邮件B
根据邮件A生成hashtable_
bad,该哈希表中的记录为
法:1次
#:1次
功:1次
计算得在本表中:
法出现的概率为0。3
#出现的概率为0。3
功出现的概率为0。3
根据邮件B生成hashtable_good,该哈希表中的记录为:
法:1
律:1
计算得在本表中:
法出现的概率为0。5
律出现的概率为0。5
综合考虑两个哈希表,共有四个TOKEN串:
法 # 功
律
当邮件中出现“法”时,该邮件为垃圾邮件的概率为:
P=0。3/(0。3+0。5)=0。375
出现“#”时:
P=0。3/(0。3+0)=1
出现“功“时:
P=0。3/(0。3+0)=1
出现“律”时
P=0/(0+0。5)=0;
由此可得第三个哈希表:hashtable_probability
其数据为:
法:0。375
#:1
功:1
律:0
当新到一封含有“功律”的邮件时,我们可得到两个TOKEN串,功
律
查询哈希表hashtable_probability可得
P(垃圾邮件| 功)=1
P
(垃圾邮件|律)=0
此时该邮件为垃圾邮件的可能性为:
P=(0*1)/[0*1+(1-0)*(1-1)]=0
由此可推出该邮件为非垃圾邮件
分享到:
相关推荐
基于贝叶斯算法的垃圾邮件过滤,可以运行!
数据集说明: 数据集下包含两个文件夹,其中spam文件夹下为垃圾邮件,ham文件夹下为非垃圾邮件。 数据集格式: txt文件
随着电子邮件的应用与普及,...缺点,通过引入分级的最小风险算法和对多项式和多重贝努利估计模型进行混合的方法分别对贝叶斯过滤器进 行了改进,并进行了实验。实验结果表明,改进后的贝叶斯过滤器具有了更好过滤效果
1、内容概要:本资源主要基朴素贝叶斯算法实现垃圾邮件过滤分类,适用于初学者学习文本分类使用。 2、主要内容:邮件数据集email,email文件夹下有两个文件夹ham和spam,其中ham文件夹下的txt文件为正常邮件,spam...
实验,较之目前流行的传统贝叶斯算法、K最近邻(NN算法和支持向量机SVM)算法,基于MapReduce的贝叶斯垃圾邮件过滤机制在召回率、查准率和精确率方面保持了较好的表现,同时降低了邮件学习和分类成本,提高了系统执行...
贝叶斯分类算法在垃圾邮件过滤中的应用 研究贝叶斯算法的优点
基于贝叶斯算法的垃圾邮件过滤,曾志中,雷友珣,垃圾邮件过滤问题是Internet安全技术研究的一个重要的问题,而基于贝叶斯的垃圾邮件的分类方法在处理垃圾邮件上表现出了很高的准确�
这是改进的朴素贝叶斯算法的垃圾邮件过滤算法,论文,希望对你的学习有帮助。
研究了基于改进的支持向量机(SVM,support vector machine)算法结合朴素贝叶斯...仿真实验结果表明,该算法降低了样本空间复杂度,快速得到最优分类特征子集,有效地提高了垃圾邮件过滤的分类速度、准确率和召回率。
python源码,用朴素贝叶斯算法实现垃圾邮件的过滤.
目前,基于内容的垃圾邮件过滤问题是Internet安全技术研究的一个重点问题,将机器学习的相关方法应用于垃圾邮件的搜索和判定是进行大量垃圾邮件处理的有效方法。由于贝叶斯分类方法在垃圾邮件处理上表现出了很高的准确...
基于贝叶斯算法的JavaMail垃圾邮件过滤实现
项目实战-朴素贝叶斯算法实现垃圾邮件过滤源码+文档说明.zip该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。 项目实战-朴素贝叶斯算法实现垃圾邮件过滤源码+文档...
《机器学习笔记(2)——使用朴素贝叶斯算法过滤(中英文)垃圾邮件》 一文中的邮件数据
这是我研究生的一个作业,要用贝叶斯分类器去实现垃圾邮件的分类。 第一次是用c语言实现。 第二次用Java,并且用了哈希表,用以保证其计算速度
垃圾邮件过滤的程序,python编写,里边有详尽的注释,采用贝叶斯算法。可以训练,测试。可以用来学习python和贝叶斯算法。
贝叶斯过滤垃圾邮件算法的基本步骤.docx
贝叶斯过滤垃圾邮件算法的基本步骤.pdf
研究了改进的基于SVM-EM算法融合的朴素贝叶斯文本分类算法以及在垃圾邮件过滤中的应用...仿真实验结果表明,与传统的邮件过滤算法相比,该方法能够快速得到最优分类特征子集,大大提高了垃圾邮件过滤的准确率和稳定性。
贝叶斯过滤垃圾邮件算法的基本步骤参考.pdf