一种基于分类器动态更新的垃圾邮件检测方法及系统的制作方法

文档序号:7695753阅读:170来源:国知局
专利名称:一种基于分类器动态更新的垃圾邮件检测方法及系统的制作方法
技术领域
本发明涉及电子邮件处理技术领域,具体涉及一种基于分类器动态更新的垃圾邮件检测方法及系统。

背景技术
随着互联网的日益普及,电子邮件对于每一个人来说就已经成为一种日常通讯的重要媒介和最为便捷的通信手段之一,基本上代替了传统的纸质信件,人们越来越依赖于它和离不开它。但是,电子垃圾邮件的出现却引发了日益严重的问题,严重威胁着人们的正常电子邮件通信。垃圾邮件的膨胀不仅浪费掉大量的存储空间和通信带宽,而且还消耗了大量的用户时间去处理和删除它们。因此,研究对这种垃圾邮件的检测过滤方法就显得十分必要,具有重要意义。
垃圾邮件分类检测在本质是一个模式识别问题。垃圾邮件的分类大体上可以分为邮件特征向量提取和分类器分类两个步骤。分类器具体是由代表邮件分类结果的分类向量组成的,邮件的特征向量输入后,计算分类器中所有分类向量与邮件特征向量的相似度,基于不同的分类准则,具有不同的相似度计算方法,然后将相似度最高的分类向量所代表的分类结果,作为该邮件的分类。如图1所示显示了垃圾邮件检测的系统框架。对于一封待分类邮件,在经过预处理后通过对邮件进行特征向量提取,将邮件表示为分类器可以理解的方式,随后特征向量提取的结果被作为分类器的输入。针对输入分类器会利用预先积累的经验知识(分类向量)对邮件进行一个两类的判定,即是正常邮件或者是垃圾邮件并将分类结果输出给用户。用户根据自身的判断对分类器的分类结果做出反馈。分类器根据反馈的结果做出自身的动态调整。现有技术中的动态调整过程一般是利用新接收的邮件作为新的训练集生成新的分类器,以反应接收数据的特性变化,该过程中删除了以前构建的分类器中所有的分类向量。
支持向量机作为一种分类工具已经被广泛的应用于各个领域。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。建立方向合适的分隔超平面使两个与之平行的超平面间的距离最大化。其假定为,平行超平面间的距离或差距越大,分类器的总误差越小。
当前的历史信息通过支持向量和与它们关联的权重来表示。一般来说,支持向量的数量要远小于训练样本的总数。因此,支持向量提供了对数据的一种简洁表示[C.Domeniconi and D.Gunopulos,“Incremental support vector machine construction,”in Proc.IEEEInternational Conference on Data Mining(ICDM’01),San Jose,CA,USA,Dec.2001,pp.589-592]。因此,在每一次增量更新中,描述类边界信息的支持向量以及新到来的数据被作为新的数据集对支持向量机进行更新。
对支持向量机进行增量更新的技术包括误差驱动方法ED(Error-driven technique),固定分割方法FP(Fixed-partitiontechnique),超间隔方法EM(Exceeding-margin technique),超间隔+误差方法EM+E(Exceeding-margin+error technique)等。文献[N.A.Syed,H.Liu,and K.K.Sung,“Incremental learning with supportvector machines,”in Proc.International Joint Conference on ArtificialIntelligence(IJCAI’99),Stockholm,Sweden,1999]在Large-noisy-crossed-norm数据集和UCI机器学习库中的Pima数据集上的实验结果表明,超间隔方法EM更新技术在使用较少的支持向量的情况下取得了和上述其他三种方法类似的性能。
在EM更新技术中,给定t时刻的支持向量机分类器模型SVMt,算法检查邮件特征向量是否位于SVMt定义的分类间隔内。如果,则将该邮件保留,否则将其丢弃。当保留的位于分类间隔内的邮件数量达到给定的数量ne(ne为正整数)时,触发了SVMt的更新。这时使用SVMt的支持向量连同保留的ne个邮件作为训练数据生成t+1时刻新的分类器模型SVMt+1,该增量更新过程中,同样也删除了以前构建的分类器SVMt中所有的分类向量。
上述分析可以得出,现有技术中垃圾邮件的分类器更新方法中,采用新接收的数据对分类器进行动态更新,能够反映不断接收的新数据流的变化,反映新数据流的特点,但是由于该更新过程删除了所有的历史分类向量,不能保存一些具有很好分类效果的分类向量,这样所得分类的准确性往往会受到新数据流的局限性的影响。


发明内容
本发明的目的是提供的基于分类器动态更新的垃圾邮件检测方法及系统,将分类效果好的分类向量保留一段时间,在达到生命周期后再删除掉,保证了分类的准确性不会受到新数据流的局限性的影响。
为实现上述目的,本发明采用如下技术方案 一种基于分类器动态更新的垃圾邮件检测方法,包括步骤s101,构建由分类向量构成的分类器;s102,获取待检测邮件的特征向量与每个分类向量的相似度,由相似度最高的分类向量作出对所述待检测邮件的分类;s103,获取用户反馈的所述待检测邮件的分类,统计每个分类向量作出正确分类的次数;s104,重复步骤s102~s103,在步骤s102中,还由正确分类次数超过设定值的分类向量作出对所述待检测邮件的分类;s105,达到设定条件时更新所述分类器,正确分类次数超过设定值的分类向量被保留;s106,重复步骤s102~s105,在步骤s102中,还由被保留的分类向量作出所述对待检测邮件的分类。
其中,在步骤s102中,所占比例大的分类为所述待检测邮件的分类,正确分类次数超过设定值的分类向量在作出设定次数的分类后被删除。
其中,获取用户反馈的所述待检测邮件的分类后还包括步骤提高作出正确分类的分类向量与所述待检测邮件的相似度;降低作出错误分类的分类向量与所述待检测邮件的相似度。
其中,提高作出正确分类的分类向量与所述待检测邮件的相似度的方法为通过改变作出正确分类的分类向量中的若干个元素,使该若干个元素与待检测邮件中的对应元素相同;降低作出错误分类的分类向量与所述待检测邮件的相似度与所述待检测邮件的相似度的方法为通过改变作出正确分类的分类向量中的若干个元素,使该若干个元素与待检测邮件中的对应元素不同。
其中,在步骤s101中,利用支持向量机构建分类器,所述分类向量为代表邮件分类结果的支持向量,所述分类结果包括正常邮件和垃圾邮件。
其中,达到设定条件时更新所述分类器的方法包括步骤判断所述待检测邮件的特征向量是否位于分类器的分类间隔内;若在所述分类间隔内,将所述待检测邮件暂时存储;当存储的待检测邮件数目达到设定数目,将存储的待检测邮件的特征向量与分类器的支持向量作为训练样本集,对分类器进行更新;删除暂时存储的所述待检测邮件。
其中,在步骤s102,获取相似度的方法为采用汉明距离分类准则,依据待检测邮件的特征向量与所述分类向量之间的汉明距离,由所述汉明距离确定所述相似度,所述汉明距离与所述相似度成反比。
其中,在步骤s102,获取相似度的方法为采用夹角分类准则,依据待检测邮件的特征向量与分类器的分类向量间的夹角,由所述夹角确定所述相似度,所述汉明距离与所述夹角的余弦成正比。
其中,在步骤s102,获取相似度的方法为采用支持向量分类准则,依据待检测邮件的特征向量,判断所述待检测邮件与所述分类向量确定的超平面的距离,由所述距离确定所述相似度,所述距离与所述相似度成正比。
其中,在步骤s102,采用不同的分类准则获取相似度,包括采用汉明距离分类准则获取第一相似度;采用夹角分类准则获取第二相似度;采用支持向量分类准则获取第三相似度;将由汉明距离、夹角和支持向量分类准则所得出的相似度最高的分类向量所给出的三次分类,每次的分类赋予不同的加权值,根据加权后的分类结果得到待检测邮件的分类。
其中,在步骤s101,构建的分类器为w个,w为设定值,每个分类器由分类向量组成;在时刻t,w个分类器分别表示为SVM1t,SVM2t,...SVMwt;t+1时刻新的一批待检测邮件到来时,分类器SVMwt被丢弃,同时,剩余的分类器SVM1t,...SVMw-1t依次成为SVM2t+1,...SVMwt+1,并使用最新的一批待检测邮件新构建SVM1t+1。
本发明还提供了一种基于分类器动态更新的垃圾邮件检测系统,包括分类器构建单元,用于构建由分类向量构成的分类器;分类向量抉择单元,用于获取待检测邮件的特征向量与每个分类向量的相似度,由相似度最高的分类向量作出对待检测邮件的分类;次数统计单元,用于获取用户反馈的所述待检测邮件的分类,统计每个分类向量作出正确分类的次数;分类向量增加单元,用于将正确分类次数超过设定值的分类向量增加,参与以后对所接收待测邮件的分类;分类器更新单元,用于在达到设定条件时更新所述分类器,将正确分类次数超过设定值的分类向量保留;分类抉择单元,用于由作出分类的分类向量给出分类结果,并以此确定待检测邮件的分类。
利用本发明提供的垃圾邮件动态检测方法,具有以下优点 (1)保留分类器中分类效果好的分类向量,可以保证了分类的准确性不会受到新数据流的局限性的影响; (2)设定了所保留的分类器中分类向量的生命周期,在达到生命周期后被淘汰,保证分类的准确性不会受到陈旧知识的影响; (3)分类器采用不同的分类准则对待检测邮件进行分类,分类方式灵活; (4)不同的分类向量进行分类投票时,被赋予不同的权重,可以根据邮件的特性动态调整,进一步使分类结果准确。



图1为现有技术中垃圾邮件动态检测系统框图; 图2为本发明基于分类器动态更新的垃圾邮件检测方法流程图; 图3为本发明实施例在PUL数据集上利用八种不同的分类方法得到的正确率,精确率,召回率曲线图; 图4为本发明实施例在PUL数据集上利用八种不同的分类方法得到的丢失曲线图; 图5为本发明实施例在PUL数据集上利用八种不同的分类方法得到的测试速度曲线图; 图6为本发明实施例在Ling数据集上利用八种不同的分类方法得到的正确率,精确率,召回率曲线图; 图7为本发明实施例在Ling数据集上利用八种不同的分类方法得到的正确率,精确率,召回率曲线图; 图8为本发明实施例在Ling数据集上利用八种不同的分类方法得到的正确率,精确率,召回率曲线图; 图9为本发明实施例在PUL数据集上测试集合与记忆细胞集合的变化曲线图; 图10为本发明实施例在PUL数据集上支持向量的变化曲线图。

具体实施例方式 本发明提出的垃圾邮件动态检测方法,结合附图和实施例详细说明如下。
实施例1 本发明提出的垃圾邮件动态检测方法是基于免疫系统的检测器和记忆细胞原理的,所提出的垃圾邮件动态检测系统与免疫系统之间在模式识别、动态变化和噪声容错方面具有相似性。
支持向量机是一个具有统计学习理论基础和出色泛化性能的分类器,它已经被成功应用到了众多领域中。本实施例对现有技术中的增量支持向量机技术进行改进,基于免疫系统中的检测器和记忆细胞原理来进行分类器的更新。
现有技术中增量支持向量机技术对分类器的更新过程,首先利用分类为正常邮件与垃圾邮件的训练样本构建初始分类器,该分类器包括若干个代表邮件分类的分类向量,由于采用支持向量机构建分类器,因此分类向量为支持向量,每个支持向量有自身的标号,代表其是正常邮件的支持向量或垃圾邮件的支持向量;接收待检测邮件,获取待检测邮件的特征向量,利用分类准则获取待检测邮件的特征向量与分类器中每个支持向量的相似度;由具有最高相似度最高的支持向量给出分类结果,该分类结果为该支持向量对应的标号。
上述过程中,给定t时刻的支持向量机分类器表示为SVMt,每接收一封待检测邮件后,检查待检测邮件的特征向量是否位于SVMt定义的分类间隔内。如在,则将待检测邮件暂时存储,否则将其丢弃。当保留的位于分类间隔内的待检测邮件达到给定的数量ne(ne为正整数)时,触发了SVMt的更新。这时使用SVMt的支持向量连同保留的ne个待检测邮件作为训练数据生成t+1时刻新的分类器SVMt+1。然后利用新分类器进行分类,随着邮件的不断接收,达到设定条件后对分类器不断的更新。
本实施例中,初始构建的分类器中的所有支持向量构成检测器集合,通过获取用户反馈的邮件分类结果,可以统计检测器集合中参与分类的支持向量作出分类正确的次数,当一个检测器集合中支持向量的正确分类的邮件数目超过了预先设定的阈值nm(nm为正整数)时,该检测器便被提升为记忆细胞并添加到记忆细胞集合中,同时将它从原来的检测器集合中删除;记忆细胞集合中的支持向量参与以后接收的待检测邮件的分类,且不参与上述分类器的更新,即上述分类器SVMt的更新过程中,记忆细胞集合中的支持向量被保留,而检测器集合中的支持向量会随着分类器的更新而被删除。新生成的分类器中的支持向量作为新的支持向量,重新被统计作出正确分类的次数,随着邮件的到来,会不断有新的支持向量被保留添加到记忆细胞集合中,记忆细胞集合中支持向量参与邮件的分类,且不会受分类器更新的影响。
本实施例中,为每一个记忆细胞集合中的支持向量设定了生命周期lifespan(lifespan为正整数),该生命周期表示该支持向量(本实施例也称为记忆细胞)在检测到达邮件的数量超过lifespan时就被自动删除掉。
本实施例中,由于参与分类的支持向量为分类器中与待检测邮件具有最高相似度的支持向量和记忆细胞集合中的支持向量,因此可以将每个参与分类的支持向量给出分类结果,看作是由一个委员会中成员的投票,取所占比例大的分类结果为待检测邮件的分类。值得注意的是当两方的票数相等时,我们将邮件归类为正常邮件。采取这种策略的原因是错误分类一封正常邮件所造成的危害要远大于错误分类一封垃圾邮件所造成的损失。
本实施例还基于免疫系统的变异原理,对上述委员会中的成员(参与分类的支持向量)进行一个可选的免疫过程,具体为提高作出正确分类的支持向量与待检测邮件的相似度;降低作出错误分类的支持向量与待检测邮件的相似度。本实施例通过支持向量中某些维和被分类邮件特征向量的对应维变的相同或者不同来实现上述目的。变异维数的多少依据预先设定的变异参数rate来确定。
实施例2 本实施例中采用支持向量机构建分类器,初始构建的分类器不限于一个,而是若干个分类器,即可以利用训练样本来构建该若干个分类器,也可以构建一个分类器后利用不断接收的邮件构建该若干个分类器,本实施例采用后者。
由于本实施例中用到若干个分类器,随着新接收邮件的到来,会清除时间比较长的分类器,而利用新接收的邮件作为训练样本生成新的分类器,因此,可以看作是一个滑动窗口承载了不同的分类器,本实施例中分类器的更新包括以下几个方面 1)窗口中分类器的滑动更新 本实施例中接收的邮件的流数据考虑为分组的批数据,每组邮件的个数为b,并使用一个窗口来同时装载代表先前第1,2,...w批的w个分类器模型。因此,窗口反映了W(=wb)个邮件的数据信息。在时刻t,将这w个分类器模型分别表示为SVM1t,SVM2t,...SVMwt。当t+1时刻新的批数据到来时,SVMwt被从窗口中丢弃,同时,剩余的SVM1t,...SVMw-1t成为SVM2t+1,...SVMwt+1。并且,使用最新的一批数据生成SVM1t+1。这一过程可以被公式化为 其中w是窗口的大小。
窗口中的每一个支持向量机SVM分类器代表了到目前为止的一些批数据。其中SVM1t表示最近的一批数据,而SVMwt表示先前的w批数据。当一封新邮件到来时,根据提取的新邮件的特征向量,窗口中的每一个具有相同权重的支持向量机SVM分类器对该待检测邮件进行独立的分类,每个分类器均给出与待检测邮件具有最高相似度的支持向量,该支持向量对应的标号代表了该分类器对待检测邮件的分类。窗口中的这些SVM分类器可以看作是具有不同知识的专家,他们协同工作对新待检测邮件进行决策。
本实施例还可以采用一种更为复杂的带权投票的策略。窗口中的SVM分类器可以被赋予不同的初始权值并可在随后动态的进行调整。当数据流的特性变化剧烈时,我们可以增加窗口中诸如分类器SVM1t,SVM2t;这样“年轻”的分类器的权重,以便能够及时反映数据流的特性变化。相反,当数据流的变化趋势比较平缓时,我们可以增大“年长”的分类器的权重,因为它们代表了较多的历史知识。在实际情况中,数据特性的变化趋势是动态改变的,因此也需要对窗口中的SVM分类器进行动态的权值更新。
2)增量型EM更新 本实施例中,在开始接收待检测邮件的数据流的同时,利用现有技术中超间隔方法EM(Exceeding-margin)对滑动窗口中已构建的分类器中个支持向量进行增量型更新。
与实施例1相同,具体过程为给定t时刻的支持向量机分类器表示为SVMt,每接收一封待检测邮件后,检查待检测邮件的特征向量是否位于SVMt定义的分类间隔内。如在,则将待检测邮件暂时存储,否则将其丢弃。当存储的位于分类间隔内的待检测邮件达到给定的数量ne(ne为正整数)时,触发了SVMt的更新。这时使用SVMt的支持向量连同保留的ne个待检测邮件作为训练数据生成t+1时刻新的分类器SVMt+1。然后利用新分类器进行分类,随着邮件的不断接收,达到设定条件后对分类器不断的更新。区别就在窗口中每一个分类器都定义了自己的分类间隔,因此,所存储的位于各个分类间隔内的数据是独立,各个分类器独立的更新。
3)检测器集合和记忆细胞集合内的支持向量更新 上述滑动窗口中每个分类器由若干个支持向量构成,上述分类器刚构建时,每个分类器中的支持向量构成一个检测器集合,通过获取用户反馈的邮件分类结果,可以统计每个分类器对应检测器集合中参与分类的支持向量作出分类正确的次数,当一个检测器集合中支持向量的正确分类的邮件数目超过了预先设定的阈值nm(nm为正整数)时,该支持向量便被提升为记忆细胞并添加到记忆细胞集合中,同时将它从原来的检测器集合中删除;记忆细胞集合中的支持向量参与以后接收的待检测邮件的分类,且不参与上述分类器的更新,即上述分类器SVMt的更新过程中,记忆细胞集合中的支持向量被保留,而检测器集合中的支持向量会随着分类器的更新而被删除。新生成的分类器中的支持向量作为新的支持向量,重新被统计作出正确分类的次数,随着邮件的到来,会不断有新的支持向量被保留添加到记忆细胞集合中,参与邮件的分类,且不会受分类器更新的影响。
与实施例1相同,每一个记忆细胞集合中的支持向量设定了生命周期lifespan(lifespan为正整数),该生命周期表示该支持向量(本实施例也称为记忆细胞)在检测到达邮件的数量超过lifespan时就被自动删除掉。本实施例中该生命周期lifespan等于上述窗口中滑动更新中每批邮件的个数,分类向量作出一次正确分类后被提升为记忆细胞,由于记忆细胞集合中的支持向量每作一次邮件分类,生命周期值减少一,这样在检测完一批数据后,由上批数据构建的分类器中的分类向量提升的记忆细胞,在完成该批邮件数据的检测后,会随着分类器的移除而被删除,既保证了分类器可以跟随数据流特性的变化,又不会变化的太快,使分类效果好的分类向量保留一段时间。
本实施例中滑动窗口中的SVM分类器在对待测邮件进行分类时,可以采用不同的分类准则获取待检测邮件的特征向量与每个分类向量的相似度,优选地可以采用下述四种分类准则中任一种汉明距离;夹角;支持向量;带权股票。
为了比较不同分类准则所采用不同的分类器更新方法的效果,本发明具体采用下面的分类准则和该分类准则下的分类器更新方法 ①汉明距离采用汉明距离分类准则,依据待检测邮件的特征向量与分类向量(上述检测器集合和记忆细胞集合中的分类向量)之间的汉明距离,由汉明距离确定相似度,汉明距离与相似度成反比,每个分类器中和待分类邮件具有最小距离的分类向量及记忆细胞集合中的分类向量被添加到委员会集合中。委员会集合中的每一个成员按照自身的标号进行投票。邮件最终的类别以投票票数较多的类别结果的形式给出。此外,该分类准则中对于委员会集合中的每一个成员还有一个可选的免疫过程。在该过程中,做出正确决策的成员将会在特征空间中向被分类邮件拉近(提高相似度),反之,做出错误决策的成员将会在特征空间中向被分类邮件拉远(降低相似度)。具体为通过使委员会成员的特征向量中某些维和被分类邮件特征向量的对应维变的相同或者不同来实现上述目的。变异维数的多少依据预先设定的变异参数rate来确定。
②夹角在这种分类准则中,本实施例通过计算待分类邮件向量和分类向量(上述检测器集合和记忆细胞集合中的分类向量)之间的夹角的余弦值,由夹角的余弦值确定相似度,夹角的余弦值与相似度成正比。每个分类器和待分类邮件具有最大余弦值的分类向量及细胞集合中的分类向量被添加到委员会集合中。接下来的分类过程和汉明距离的分类准则一致。本实施例中的夹角分类准则中没有采用上述变异过程。
③支持向量分类准则依据待检测邮件的特征向量,判断待检测邮件与分类向量确定的超平面的距离,由所述距离确定相似度,该距离与相似度成正比,该分类准则没有采用划分检测器集合和记忆细胞集合的方法,即没有采用上述保留分类效果好的分类向量的步骤。
④加权投票这种方式将上述三种方法——汉明距离,夹角,SVM进行加权组合。在汉明距离和夹角的方法中,委员会集合中的投票可以被看作是第一个层次的投票。对于SVM来说,给出的邮件标号则可看作是支持向量的投票结果。加权投票策略使用汉明距离,夹角,SVM三种方法的分类结果在高一级别的第二个层次上再次进行投票,并根据投票的结果给出最终判定。三种方法的权重可以预先设定,也可以根据其性能动态的调整。具体来说,可以对性能较好的方法赋予较高的权重,反之亦然。
本实施例中窗口的大小被设置为奇数以避免出现分类器投票时票数相等的情况。当窗口大小超过某一值后,分类器的更新会消耗更多的CPU时间(因为这时窗口装载了更多的分类器),因而分类速度会下降。而性能却没有得到显著的提高甚至会下降。因此,希望窗口能够同时具有较好的性能和较快的速度。依据上述目标,在实验中采用了较小(窗口大小为3或5)同时性能良好的窗口大小。
本实施例中的训练样本集采用标准数据集PU1(I.Androutsopoulos,J.Koutsias,K.V.Chandrinos,and C.D.Spyropoulos,“An experimentalcomparison of naive bayesian and keyword-based anti-spam filtering withpersonal e-mail messages,”in Proc.of the 23rd Annual InternationalACM SIGIR Conference on Research and Development in InformationRetrieval,2000,pp.160-167.)和数据集Ling(I.Androutsopoulos,J.Koutsias,K.V.Chandrinos,G.Paliouras,and C.D.Spyropoulos,“Anevaluation of naive bayesian anti-spam filtering,”in Proc.EuropeanConference on Machine Learning(ECML’00),2000)。
被分组的批数据每组邮件数据数目大小的设置应当依据数据流的特性。当数据流变化剧烈时,数据块的应该较小以便能够及时清除陈旧知识。反之,当数据流变化平缓时,可以采用较大的数据块。本实施例在PU1和Ling上数据变化趋势并不十分剧烈,因此在试验中采用了相对较大的数据块(每块60封邮件)。
超越支持向量机分类间隔的邮件的数目ne应当适中。一方面,当ne设置过小时,噪声点会引起抖动,并且频繁的分类器更新也是耗时的。另一方面,当ne设置过大时,由于分类器不能够及时的进行更新,因此无法及时的反映新的数据分布。本实施例中优选ne=30较好的平衡了分类器的更新频率和性能。
和ne类似,普通检测器被提升为记忆细胞的阈值nm既不能设置的太宽松也不能设置的太严格。当nm设置过小时,一个普通检测器很容易超过阈值。因此许多被提升的普通检测器并不具备很好的代表性,从而会降低记忆细胞的效率。反之,当nm设置过大时,普通检测器很难被提升为记忆细胞,这时记忆细胞集合可能为空。我们的目标是维持一个小而高效的记忆细胞集合。本实施例中当nm设置为5时较好的满足了该要求。
记忆细胞的生命周期控制其老化过程。这个值不能设置的过小,否则在记忆细胞进行匹配之前就将被清除出记忆细胞集合,因此不能发挥任何作用。而当生命周期设置过大时,无用的记忆细胞又不能够及时的被清除。在我们的实验中,生命周期被设置为和分组中邮件数据大小相同。这表明只要记忆细胞在一批数据中发生了一次正确匹配,那么它就将被保留下来。
对于变异比率来说,过小的变异比率会导致变体的覆盖范围几乎和被变异的检测器的覆盖范围相同。这种情况不会带来任何性能的提升,反而增大了空间开销。相反,过大的变异比率使得不能够确定变体是否和被变异的检测器具有相同的类别标号,因此会导致错误分类。在实验中我们设置变异比率(变异的大小,用概率表示)为5%。如表1所示为本实施例中的各参数的取值和对应的范围。
表1本实施例中的参数取值和对应的取值范围 另外,本实施例中,为了比较不同的分类准则,采用了表2所示的八种方法, 表2在本实施例中用于比较的使用不同分类准则的八种方法 其中 仅使用窗口最右侧的SVM进行分类(M5)在这种方式下,维持一个窗口并且窗口中的分类器按照EM更新技术独立的进行更新。但是只使用窗口中最右端的分类器classifierw对邮件的类别进行预测。
在不使用窗口的情况下使用SVM(M6)这种方式可以被看作是窗口大小为一的特例。这时窗口中唯一的分类器连续的对邮件进行分类并且根据EM更新技术进行自我更新。
在不使用窗口的情况下使用SVM的90%的支持向量分类(M7)这种方式是在性能和速度之间的一个折衷。在分类过程中,将支持向量按照它们的系数进行降序排序(系数表明了支持向量的相对重要程度)。丢弃位于队尾的10%的支持向量后使用剩余的90%的支持向量来分类。剩余的过程和M6一致。
图3、4、5显示了在PU1数据集上,当使用等份1和2(共219封邮件)作为训练集,等份3-10(共880封邮件)作为测试集时,所比较的八种方法在测试集上的正确率,精确率,召回率和丢失率及分类速度,图3中的带三角形的虚线表示召回率,带正方形的虚线表示正确率,带菱形的虚线表示精确率。图4中带菱形的虚线表示分类的丢失率,图5中的带菱形的虚线表示分类的速度。窗口大小被设置为5。图6、7、8显示了在Ling数据集上,当使用等份9和10(共580封邮件)作为训练集,等份1-8(共2313封邮件)作为测试集时,所比较的八种方法在测试集上的正确率,精确率,召回率和丢失率及分类速度,图7中带菱形的虚线表示分类的丢失率,图8中的带菱形的虚线表示分类的速度。窗口大小被设置为3。表3到表6列出了在不同等份测试集上的平均性能。
现有技术中常使用正确率,精确率,召回率和丢失率这四项指标对分类器的性能进行评价。正确率被定义为正确分类的邮件的百分率。精确率定义为被正确分类为垃圾邮件的邮件个数与被判别为垃圾邮件的邮件个数的比率。召回率定义为被正确分类为垃圾邮件的邮件个数与自身类别为垃圾邮件的邮件个数的比率。当过滤垃圾邮件时,错误的将一封正常邮件分类为垃圾邮件所造成的损失要远比未能识别出一封垃圾邮件严重。丢失率就是用来表示被错误分类的正常邮件的邮件数目与自身类别为正常邮件的邮件个数的比率。
图9显示了在PU1数据集上,当使用夹角作为分类准则并设置窗口的大小为5时,分类器从由第一批数据产生到被移出窗口的过程中,其检测器集合和记忆细胞集合大小的变化,图中带有正方形的虚线表示记忆细胞集合,图中带有菱形的虚线标表示检测器集合。图10显示了使用SVM作为分类准则时,SVM从由第一批数据产生到被移出窗口的过程中,支持向量数量的变化,图中带有菱形的虚线表示支持向量的数量。横坐标1表示分类器的产生,其他横坐标数值表明了触发EM-Update增量更新的时刻。
表3.窗口大小为3时,8种方法在PU1上的性能 表4.窗口大小为5时,8种方法在PU1上的性能 表5.窗口大小为3时,8种方法在Ling上的性能 表6.窗口大小为5时,8种方法在Ling上的性能 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1、一种基于分类器动态更新的垃圾邮件检测方法,其特征在于,包括步骤
s101,构建由分类向量构成的分类器;
s102,获取待检测邮件的特征向量与每个分类向量的相似度,由相似度最高的分类向量作出对所述待检测邮件的分类;
s103,获取用户反馈的所述待检测邮件的分类,统计每个分类向量作出正确分类的次数;
s104,重复步骤s102~s103,在步骤s102中,还由正确分类次数超过设定值的分类向量作出对所述待检测邮件的分类;
s105,达到设定条件时更新所述分类器,正确分类次数超过设定值的分类向量被保留;
s106,重复步骤s102~s105,在步骤s102中,还由被保留的分类向量作出所述对待检测邮件的分类。
2、如权利要求1所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s102,所占比例大的分类为所述待检测邮件的分类,正确分类次数超过设定值的分类向量在作出设定次数的分类后被删除。
3、如权利要求1所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,获取用户反馈的所述待检测邮件的分类后还包括步骤
提高作出正确分类的分类向量与所述待检测邮件的相似度;
降低作出错误分类的分类向量与所述待检测邮件的相似度。
4、如权利要求3所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,提高作出正确分类的分类向量与所述待检测邮件的相似度的方法为
通过改变作出正确分类的分类向量中的若干个元素,使该若干个元素与待检测邮件中的对应元素相同;
降低作出错误分类的分类向量与所述待检测邮件的相似度与所述待检测邮件的相似度的方法为
通过改变作出正确分类的分类向量中的若干个元素,使该若干个元素与待检测邮件中的对应元素不同。
5、如权利要求1所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s101中,利用支持向量机构建分类器,所述分类向量为代表邮件分类结果的支持向量,所述分类结果包括正常邮件和垃圾邮件。
6、如权利要求5所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,达到设定条件时更新所述分类器的方法包括步骤
判断所述待检测邮件的特征向量是否位于分类器的分类间隔内;
若在所述分类间隔内,将所述待检测邮件暂时存储;
当存储的待检测邮件数目达到设定数目,将存储的待检测邮件的特征向量与分类器的支持向量作为训练样本集,对分类器进行更新;
删除暂时存储的所述待检测邮件。
7、如权利要求1~6任一所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s102,获取相似度的方法为采用汉明距离分类准则,依据待检测邮件的特征向量与所述分类向量之间的汉明距离,由所述汉明距离确定所述相似度,所述汉明距离与所述相似度成反比。
8、如权利要求1~6任一所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s102,获取相似度的方法为采用夹角分类准则,依据待检测邮件的特征向量与分类器的分类向量间的夹角,由所述夹角确定所述相似度,所述汉明距离与所述夹角的余弦成正比。
9、如权利要求6任一所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s102,获取相似度的方法为采用支持向量分类准则,依据待检测邮件的特征向量,判断所述待检测邮件与所述分类向量确定的超平面的距离,由所述距离确定所述相似度,所述距离与所述相似度成正比。
10、如权利要求6所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s102,采用不同的分类准则获取相似度,包括
采用汉明距离分类准则获取第一相似度;
采用夹角分类准则获取第二相似度;
采用支持向量分类准则获取第三相似度;
将由汉明距离、夹角和支持向量分类准则所得出的相似度最高的分类向量所给出的三次分类,每次的分类赋予不同的加权值,根据加权后的分类结果得到待检测邮件的分类。
11、如权利要求6所述的基于分类器动态更新的垃圾邮件检测方法,其特征在于,在步骤s101,构建的分类器为w个,w为设定值,每个分类器由分类向量组成;在时刻t,w个分类器分别表示为SVM1t,SVM2t,...SVMwt;t+1时刻新的一批待检测邮件到来时,分类器SVMwt被丢弃,同时,剩余的分类器SVM1t,...SVMw-1t依次成为SVM2t+1,...SVMwt+1,并使用最新的一批待检测邮件新构建SVM1t+1。
12、一种基于分类器动态更新的垃圾邮件检测系统,其特征在于,包括
分类器构建单元,用于构建由分类向量构成的分类器;
分类向量抉择单元,用于获取待检测邮件的特征向量与每个分类向量的相似度,由相似度最高的分类向量作出对待检测邮件的分类;
次数统计单元,用于获取用户反馈的所述待检测邮件的分类,统计每个分类向量作出正确分类的次数;
分类向量增加单元,用于将正确分类次数超过设定值的分类向量增加,参与以后对所接收待测邮件的分类;
分类器更新单元,用于在达到设定条件时更新所述分类器,将正确分类次数超过设定值的分类向量保留;
分类抉择单元,用于由作出分类的分类向量给出分类结果,并以此确定待检测邮件的分类。
全文摘要
本发明涉及一种基于分类器动态更新的垃圾邮件检测方法及系统,包括步骤构建由分类向量构成的分类器;获取待检测邮件的特征向量与每个分类向量的相似度;由相似度最高的分类向量作出分类;获取用户反馈的待检测邮件的分类;统计每个分类向量作出正确分类的次数;接收新的待测邮件后按上述步骤分类,当达到设定条件时更新分类器,正确分类次数超过设定值的分类向量被保留,对新接收的待检测邮件作出分类;该系统包括分类器更新单元,在达到设定条件时更新分类器,将正确分类次数超过设定值的分类向量保留并用于参与以后的邮件分类。本发明将分类器中分类效果好的分类向量保留一段时间,保证了分类的准确性,不会受到新数据流的局限性的影响。
文档编号H04L12/26GK101316246SQ20081011691
公开日2008年12月3日 申请日期2008年7月18日 优先权日2008年7月18日
发明者营 谭, 阮光尘 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1