贝叶斯介绍
贝叶斯是基于概率的一种算法,是Thomas Bayes:一位伟大的数学大师所创建的,目前此种算法用于过滤垃圾邮件得到了广泛地好评。贝叶斯过滤器是基于“自我学习”的智能技术,能够使自己适应垃圾邮件制造者的新把戏,同时为合法电子邮件提供保护。在智能邮件过滤技术中,贝叶斯(Bayesian)过滤技术取得了较大的成功,被越来越多地应用在反垃圾邮件的产品中。
二、 贝叶斯过滤算法的基本步骤
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 ) =P2 ( 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) 超过预定阈值时,就可以判断邮件为垃圾邮件。
三、 贝叶斯过滤算法举例
例如:一封含有 “ *** ” 字样的垃圾邮件 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
由此可推出该邮件为非垃圾邮件。
四、 总结
叶斯过滤器为什么能够工作得这么好呢?因为贝叶斯过滤器纯粹根据统计学规律运作,比起那些需要分析邮件句法或内容含义的过滤器来显然要简单的多,而且可计算性强得多。更重要的是,这些标记完全可以由用户根据自己所接收的垃圾邮件和非垃圾邮件来创建,因而可以获得一种对用户来说独一无二的过滤器。这意味着垃圾邮件发送者根本无法猜测出你的过滤器是如何配置的,从而有效地阻截住各类垃圾邮件。
不过,尽管贝叶斯过滤器非常有效,但它仍需要进行优化才能真正完美。比如它可以结合 “白名单”降低误报率,结合“黑名单”降低漏过率,还可以利用其他技术如源址认证使其成为更加精确的垃圾邮件过滤器。
分享到:
相关推荐
基于一类SVM概率密度估计的多分类贝叶斯算法研究 概率密度估计是一种重要的机器学习技术,广泛应用于模式识别、自然语言处理、计算机视觉等领域。本文研究了一种基于一类支持向量机(SVM)的多分类贝叶斯算法,旨在...
本研究论文提出了基于朴素贝叶斯算法的垃圾邮件分类方法,并对其进行了详细的分析和评估。该方法可以对垃圾邮件进行分类,并可以帮助用户避免受到垃圾邮件的骚扰。 朴素贝叶斯算法在垃圾邮件分类领域中的应用前景...
6. SQL Server 2008 R2中的贝叶斯算法:通过实例研究表明,SQL Server 2008 R2中的贝叶斯算法在数据挖掘分类任务中是有效的。这说明微软将贝叶斯算法集成到了其数据库管理系统中,为企业提供了一个易于使用和实用的...
朴素贝叶斯算法的应用非常广泛,例如,在电子邮件过滤和文本分类研究中,朴素贝叶斯算法可以用于对电子邮件进行分类,过滤出垃圾邮件。朴素贝叶斯算法也可以用于社交网络研究中,对社交网络中的用户进行分类。 在...
1.1 贝叶斯算法研究背景 贝叶斯算法源于18世纪英国数学家托马斯·贝叶斯的工作,他在概率理论方面提出了前验概率和后验概率的概念。在现代数据科学中,贝叶斯方法常用于分类和回归任务,特别是在处理不确定性问题时...
在社交网络数据挖掘的研究中,朴素贝叶斯算法能够处理大量的多元特征数据,是解决上述问题的一种有效手段。通过构建基于朴素贝叶斯算法的社交网络数据挖掘平台,如PcIE—FN平台,可以更深入地挖掘数据,提高分类准确...
**贝叶斯算法详解** 贝叶斯算法,全称为贝叶斯统计推断或贝叶斯推理,是一种基于概率论的统计分析方法。它在机器学习、数据挖掘、信息检索等...无论是在学术研究还是工业应用中,理解并掌握贝叶斯算法都是十分重要的。
本文提出了一个基于贝叶斯算法的网络安全评估模型,贝叶斯算法在处理不确定性信息方面具有独特优势,因此它被应用于网络安全风险的分析和量化。模型的构建基于对各种威胁源引起的网络安全风险的分析,能够提供更加...
【标题】:“面向MapReduce云平台的并行贝叶斯算法的设计” 在当前的大数据时代,数据处理的需求急剧增加,传统的单机计算方法已无法满足高效处理海量数据的需求。为了解决这一问题,分布式计算框架如Hadoop的...
《朴素贝叶斯算法及其改进算法研究》中,作者从三个方面对朴素贝叶斯算法进行了改进,包括结构扩展、属性选择和局部学习。例如,在结构扩展中,可以使用有向边来表达属性之间的依赖关系;在属性选择中,可以在属性...
- **基于条件独立性的方法**:侧重于独立性关系的检测,如Wermuth-Lauritzen算法、Boundary-DAG算法、SRA算法和Constructor算法,这种方法更符合贝叶斯网络的语义特性,通常在实践中表现出更好的效果。 参数学习是...
在分布式朴素贝叶斯算法的改进中,研究者提出在TF-IDF的基础上增加一个ICF(Inverse Class Frequency,逆类别频率)类别加权因子。ICF因子考虑了类别信息,通过降低常见类别对文本分类的贡献,增加稀有类别的权重,...
此外,研究人员还提出了许多改进朴素贝叶斯算法的方法,例如考虑词性的相对系数、首段和末段的特征等。这些方法可以提高朴素贝叶斯算法对文本特征的提取和分类准确性。例如,对于词性的相对系数,可以使用相对系数来...
贝叶斯算法的原理是利用先验知识和观测数据来计算后验概率,是概率统计领域中的一种重要算法。贝叶斯理论在处理不确定性和进行预测方面显示出其强大的功能。 文章中提到的联合贝叶斯算法,是由Dong Chen、Xudong ...
朴素贝叶斯算法是一种基于概率论的分类方法,它的理论基础是贝叶斯定理。在机器学习领域,朴素贝叶斯模型因其简单、高效和易于实现的特点而被广泛使用。在这个项目中,我们将探讨如何将朴素贝叶斯应用于Kaggle上的...
贝叶斯算法是一种基于概率论的统计方法,它在机器学习领域中被广泛应用于分类问题。在这个场景中,我们讨论的是使用贝叶斯算法进行深度学习的手动画图识别。手写数字识别是一个经典的问题,例如在MNIST数据集中,...