一、 贝叶斯垃圾邮件过滤算法理论介绍
二、 贝叶斯过滤算法的基本步骤
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
(注明:在实际应用中不可以将概率指定为1或者0,可以用相关的高概率或者低概率值来代替。)
当新到一封含有“功律”的邮件时,我们可得到两个TOKEN串:功 律
查询哈希表 hashtable_probability 可得:
P (垃圾邮件 | 功) = 1
P (垃圾邮件 | 律) = 0
此时该邮件为垃圾邮件的可能性为:
P= ( 0*1 ) /[0*1+ ( 1-0 ) * ( 1-1 ) ] = 0
由此可推出该邮件为非垃圾邮件。
相关引用链接
1、http://techzone2008.spaces.live.com/blog/cns!50291023CCAB16A0!148.entry
2、http://blog.csdn.net/chaowang2008/archive/2006/05/18/744451.aspx
3、http://www.codeproject.com/useritems/BayesClassifier.asp
相关推荐
《基于贝叶斯分类器的垃圾邮件识别:C与Java实现》 在信息技术领域,垃圾邮件...通过理解贝叶斯理论并结合适当的编程技巧和数据结构,我们可以构建出高效的邮件过滤系统,为用户创造更安全、更清净的电子邮件环境。
【基于朴素贝叶斯的垃圾邮件分类(Matlab)】是一种常见的文本分类技术,用于识别和过滤掉电子邮件中的垃圾信息。朴素贝叶斯算法是基于概率理论的一种分类方法,其核心思想是假设特征之间相互独立,并且每个特征对...
贝叶斯算法是一种基于概率论的统计学习方法,它的理论基础是贝叶斯定理。在数据挖掘、机器学习和自然语言处理等领域中,贝叶斯算法被广泛应用,尤其在分类问题上表现突出。下面我们将深入探讨这个算法的原理、应用...
在实际应用中,朴素贝叶斯算法常用于文本分类(如垃圾邮件过滤)、情感分析、推荐系统等领域。尽管它假设特征独立,这在现实世界中可能不成立,但朴素贝叶斯模型往往仍然能提供相当不错的性能,尤其是在数据量大时,...
朴素贝叶斯分类是一种基于概率理论的机器学习方法,尤其在文本分类领域有着广泛的应用,如邮件分类,垃圾邮件过滤等。在这个“朴素贝叶斯分类邮件集”中,我们很显然关注的是如何利用朴素贝叶斯算法来识别和过滤垃圾...
在Java中实现朴素贝叶斯分类器,我们可以利用其简单高效的特点,适用于文本分类、垃圾邮件过滤、情感分析等多种场景。 首先,我们需要理解朴素贝叶斯的基本原理。朴素贝叶斯模型假设每个特征对类别条件概率的影响是...
朴素贝叶斯(Naive Bayes)算法是一种基于概率理论的分类方法,它在机器学习领域广泛应用,尤其在文本分类、垃圾邮件过滤等方面表现出色。该算法基于贝叶斯定理,假设特征之间相互独立,因此得名“朴素”。在Java中...
8. **实际应用**:虽然本资源包使用的是身高和体重数据,但贝叶斯分类器广泛应用于各种领域,如文本分类、垃圾邮件过滤、医学诊断等,它以其简单性和解释性成为许多实际问题的首选解决方案。 总之,"神经网络算法之...
在数据挖掘领域,朴素贝叶斯算法因其简单、高效而被广泛应用,尤其在文本分类、垃圾邮件过滤等领域表现出色。 首先,我们需要理解贝叶斯定理。在统计学中,贝叶斯定理描述了在已知某个事件A发生的条件下,另一个...
该算法是贝叶斯定理的一种简化应用,它在机器学习领域被广泛用于文本分类、垃圾邮件过滤、情感分析等多个场景。 **贝叶斯定理** 贝叶斯定理是概率论中的一个公式,用于计算在给定某些证据或观察值的情况下,某一...
朴素贝叶斯邮件分类器是一种基于统计学的机器学习算法,常用于文本分类,特别是垃圾邮件过滤。在本文中,我们将深入探讨朴素贝叶斯理论、邮件分类的挑战以及如何利用源代码和数据来实现一个有效的邮件分类系统。 ...
在实际应用中,朴素贝叶斯模型简单、高效,且在处理大量数据时效果良好,尤其在文本分类、垃圾邮件过滤等领域表现出色。 首先,我们要理解朴素贝叶斯的基本概念。贝叶斯定理描述了在给定一系列观察数据的情况下,...
Python实现的朴素贝叶斯垃圾分类算法是一种常见的文本分类技术,尤其在处理如垃圾邮件识别这样的问题上表现出色。本文将深入探讨这一主题,包括朴素贝叶斯理论基础、Python编程实现以及如何应用到垃圾邮件分类。 一...
面向过程的朴素贝叶斯算法是一种基于贝叶斯定理的统计分类方法,它在文本分类、垃圾邮件过滤等领域有着广泛的应用。贝叶斯定理是概率论中的一个基础概念,由18世纪的数学家托马斯·贝叶斯提出,其核心思想是通过已知...
常见的垃圾邮件过滤技术包括白名单和黑名单机制、贝叶斯算法、IP地址和主题过滤、以及校验码法和关键词法。 1. **白名单和黑名单机制**:这是最基础的过滤方法,将已知的可信发送者(白名单)放行,而将已知的垃圾...
其次,Bayes算法,也称为贝叶斯分类器,是一种统计学方法,常用于垃圾邮件过滤。该算法基于概率理论,通过学习已知的垃圾邮件和非垃圾邮件特征,计算出新邮件是垃圾邮件的概率。在训练阶段,系统会收集大量的邮件...
垃圾邮件过滤是一种自动筛选机制,它根据预设的规则和算法,识别并拦截那些含有广告、欺诈、恶意软件或未经请求的信息。这些规则可能基于关键词、发送者地址、邮件主题、邮件内容的语法结构等特征。 二、机器学习在...
在机器学习领域,朴素贝叶斯算法因其简单、高效而被广泛应用于文本分类、垃圾邮件过滤、情感分析等多个场景。本资料包是关于如何在MATLAB环境中实现朴素贝叶斯分类算法的实例教程。 首先,我们要理解朴素贝叶斯的...