垃圾邮件分类算法的研究与分析 下载本文

内容发布更新时间 : 2024/5/22 4:14:56星期一 下面是文章的全部内容请认真阅读。

垃圾邮件分类算法的研究与分析 西北工业大学 计算机学院 陕西 西安 710129

(School of Computer, Northwestern Polytechnic University Xi’an 710129 China)

摘要:随着互联网的高速发展,电子邮件已经成为人们信息获取和信息交流的一个重要的渠道。与此同时垃圾邮件也成为互联网上的一个日益严重的安全问题,引起了越来越多的社会大众和研究人员的重视和关注。为了有效的分辨垃圾邮件,本文通过对训练数据进行相应的预处理及特征提取,分别使用朴素贝叶斯、C4.5决策树、支持向量机三种方法来对垃圾邮件进行分类,通过测试结果,比对各个分类算法的优劣,并进行了详细的分析。

关键词:垃圾邮件 朴素贝叶斯 C4.5决策树 支持向量机

Abstract:With the rapid development of the Internet, e-mail plays an important roles in people's information access and information exchange. At the same time, spam has become an increasingly serious security problem on the Internet, causing more and more attention of the community and researchers. In order to effectively distinguish the spam, this paper Pre-processings and extracts feature of the training data, and uses the NaiveBayes, C4.5 Decision Tree and SVM to classify the spam, Through the test results, compare and analysis the advantages and disadvantages of each classification algorithm.

Keywords: spam NaiveBayes C4.5 Decision Tree SVM

1 引言

Internet 的问世带来了电子邮件业务的出现,网络技术的飞速发展促进了邮件服务的广泛普及及繁荣,电子邮件已经成为生活在信息时代的人们日常生活一个重要部分。电子邮件不仅是一个信息交流的重要渠道,而且也是人们信息获取的重要途径之一。随着互联网的普及,不仅人们的日常事务可以通过电子邮件来进行处理,而且越来越多正式和重要的信息也通过电子邮件来进行传达和交流。

随着电子邮件越来越普及和重要性的持续增长,一些商家和不法分子开始利用垃圾邮件这种方式来进行广告信息的传播和用户消费行为信息的获取。根据无线服务机构 Wireless Services Corporation 公司提供的一份最新调查显示,目前美国移动通信市场上所有的电子邮件服务当中,43%的都是垃圾信息,而年前垃圾邮件在电子邮件中的比例为 18%。而在国内,据有关部门统计,国内的电子邮件用户,平均每天发送的短信数量超过了3亿条。邮件甚至被称为继报纸、广播、电视、网络之后的第五媒体。不过在数量庞大的电子邮件背后,垃圾邮件的问题也愈加严重。

垃圾邮件可以说是因特网带给人类最具争议性的副产品之一,它的泛滥已经使整个因特网不堪重负,人们不得不花费大量时间来对付邮箱里的垃圾邮件。在这样的情势下,制定切实可行的反垃圾邮件方案无疑是Internet的一个重要课题,而对于反垃圾邮件技术的研究也称为一个新的热点领域。本文根据现有邮件分类的知识,结合训练数据集的特点,选择合适的分类算法,来实现对垃圾邮件的分类。

2 相关工作

本文垃圾邮件的分类工作主要包括以下三个部分:文本数据预处理,数据集特征选择,分类算法的应用及结果分析。

2.1文本数据预处理

根据提供的训练数据集及测试数据集,编写程序,提取数据集中所有单词及对应的频率,并更改数据格式,以矩阵的形式存储。初步处理过后的训练数据集Pre-train1.csv第一行表示数据集中出现的所有单词、字母和数字属性共1000个,第2-9001行代表之前的9000条邮件训练数据集,对应第一行的单词,存储了

每个单词出现的频率。Pre-train1.csv最后一列添加了label标签,表明每一条数据的属性,ham或spam。在Pre-train1.csv的基础上,我们开始对数据集中的属性进行筛选,去掉统计出来的单个字母,纯数字,以及无意义词汇属性143条,得到最终的数据集Pre-train2.csv共包含857个可靠单词属性,如图1所示,基于Pre-train2.csv数据集,我们进行后续的特征提取。

图1 数据集格式

2.2 特征提取

2.2.1熵与信息增益

熵是信息理论中一个非常重要的概念,表示任何一种能量在空间中分布的均匀程度,能量分布越均匀,越不确定,熵就越大。Shannon将熵应有于信息处理,提出了“信息熵”的概念。信息熵是信息的量化度量,是衡量一个随机变量取值的不确定性程度令 X 为随机变量,如果 X 随机变量的变化越多,通过它获取的信息量就越大,X的信息熵定义为:

H(X)???p(xi)lb(p(xi)) (2-1)

i通过观察随机变量 Y 获得的关于随机变量 X 的信息熵定义为:

H(X|Y)???p(yi)?p(xi|yi)lb(p(xi|yj)) (2-2)

ji信息增益是信息熵的差,表示在消除不确定性后获得的信息量,定义为:

IG(X,Y)?H(X)?H(X|Y) (2-3)

信息增益是信息论中的一个重要概念,被广泛应用在机器学习领域。对分类系统来说,计算信息增益是针对一个一个的特征项而言的,它通过统计某一个特征项t在类别C中出现与否的文档数来计算特征项t对类别C的信息增益[1],定义为考虑出现前后的信息熵之差,某个特征项的信息增益值越大,表示其贡献越大,对分类也越重要。因此,在进行特征选择时,通常选取信息增益值大的若干个单词构造文本的特征向量。

本文中,训练数据集中有857个属性,全部参与训练效率过低,因此需要提取出有代表性的词汇,故选用信息增益的方式来从数据集中提取特征。将处理过后的训练数据集导入到WEKA软件中,并在预处理阶段使用AttributeSelection界面中InfoGainAttributeEval来进行信息增益特征提取,同时,将提取出来的特征属性按信息增益由高到低进行排列,结果如图2所示:

图2 信息增益特征提取结果

根据特征提取结果,选择信息增益排列前400的单词作为最终的训练集,并生成Pre-train(3).arff数据集文件。

3 算法实验与分析

实验部分采用自主程序设计和WEKA数据挖掘工具相结合的方法,利用经过预处理的训练集,编写MATLAB程序进行垃圾邮件分类,同时,利用WEKA软件中提供的多种常用的分类算法,进行实验。最后对各种分类方法的优劣进行总结。

3.1朴素贝叶斯算法

朴素贝叶斯分类器[2]是一种有监督的学习方法,其假设属性的值对给定类的影响而独立于其他属性值。用贝叶斯网表达朴素贝叶斯的分类器如图3所示。

图 3 朴素贝叶斯网

朴素贝叶斯后验概率[3]的计算公式如式(3-1)

P(C?ck|X?x)?P(X?x|C?ck)P(C?ck) (3-1)

P(X?x)其中X表示单词序列,C表示分类。其中P(X?x|C?ck)的计算公式如式(3-2)

则分类结果C的选择方式为式(3-3)

P(X?x|C?ck)??P(Xi?xi|C?ck) (3-2)

iC?argmax(P(C?ci|X?x)) (3-3)

i实验部分使用两种方法来实现贝叶斯分类算法,分别是MATLAB编写程序和WEKA平台提供的NaiveBayes算法。

MATLAB程序中,根据朴素贝叶斯公式,使用经过预处理的4000条数据作为训练集,实验结果如表1