贝叶斯过滤垃圾邮件算法的基本步骤

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、贝叶斯过滤算法的基本步骤

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)超过预定阈值时,就可以判断邮件为垃圾邮件。二、贝叶斯过滤算法举例

例如:一封含有“法轮功”字样的垃圾邮件 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

由此可推出该邮件为非垃圾邮件

基于朴素贝叶斯分类器的文本分类算法(上)

本文缘起于最近在读的一本书-- Tom M.Mitchell的《机器学习》,书中第6章详细讲解了贝叶斯学习的理论知识,为了将其应用到实际中来,参考了网上许多资料,从而得此文。文章将分为两个部分,第一部分将介绍贝叶斯学习的相关理论(如果你对理论不感兴趣,请直接跳至第二部分<<基于朴素贝叶斯分类器的文本分类算法(下)>>)。第二部分讲如何将贝叶斯分类器应用到中文文本分类,随文附上示例代码。

Introduction

我们在《概率论和数理统计》这门课的第一章都学过贝叶斯公式和全概率公式,先来简单复习下:

条件概率

定义设A, B是两个事件,且P(A)>0 称P(B∣A)=P(AB)/P(A)为在条件A 下发生的条件事件B发生的条件概率。

乘法公式设P(A)>0 则有P(AB)=P(B∣A)P(A)

全概率公式和贝叶斯公式

定义设S为试验E的样本空间,B1, B2, …Bn为E的一组事件,若BiBj=Ф, i≠j, i, j=1, 2, …,n; B1∪B2∪…∪Bn=S则称B1, B2, …, Bn为样本空间的一个划分。

定理设试验E的样本空间为,A为E的事件,B1, B2, …,Bn为的一个划分,且P(Bi)>0 (i=1, 2, …n),则P(A)=P(A∣B1)P(B1)+P(A∣B2)+ …+P(A∣Bn)P (Bn)称为全概率公式。

定理设试验俄E的样本空间为S,A为E的事件,B1, B2, …,Bn为的一个划分,则

P(Bi∣A)=P(A∣Bi)P(Bi)/∑P(B|Aj)P(Aj)=P(B|Ai)P(Ai)/P(B)

称为贝叶斯公式。说明:i,j均为下标,求和均是1到n

下面我再举个简单的例子来说明下。

示例1

相关文档
最新文档