垃圾邮件分类
简介:
朴素 贝叶斯垃圾邮件分类器是在对邮件关键字进行统计分析到基础上利用贝叶斯公式进行分类到方法。相比其他模型,朴素贝叶斯模型到搭建比较简单,并且具有良好到分类效果。
朴素真贝叶斯分类器通过对邮件关键字进行统计,然后使用贝叶斯推理来计算一封电子邮件是或不是垃圾邮件的概率。
贝叶斯定理:
表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。其基本求解公式为:。
贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:我们可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但我们更关心P(B|A),贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。
朴素贝叶斯分类原理与流程
朴素贝叶斯分类是一种十分简单的分类算法,它的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。
朴素贝叶斯分类的正式定义如下:
1、设为一个待分类项,而每个a为x的一个特征属性。
2、有类别集合。
3、计算。
4、如果,则。
那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:
1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
2、统计得到在各类别下各个特征属性的条件概率估计。即。
3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:
因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:
公式代表在对应到分类中(垃圾邮件,或者非垃圾邮件)每一个特征量出现的概率乘积。
分类器工作流程
1.特征量选择
这个过程到主要任务是为分类器选择特征量,特征量选取会影响到分类器到分类效果,通常情况下特征量的选择在人工干预下进行。
2.样本分类
这个过程到主要任务是人工对训练样本进行分类,形成样本集。
3.训练
个过程的任务就是生成分类器,计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这个过程通常自动完成。
4.应用
这个过程到任务是对实际数据进行分类,首先分析待分类数据,得出数据对应到各个特征量到值,然后将特征量到值放入训练过的分类其器中进行分析,最终得到分类结果。
中文垃圾邮件分类器具体实现:
本分类器采用java语言实现。
1.特征量的选择
对于文本信息而言,文本中的关键字更能代表文本到内容,因此在此分类器中我们对邮件内容进行分词处理,选取邮件中出现频率最高的10个词作为这封邮件到特征量。
2.样本分类
对于垃圾邮件分类器而言样本到分类比较简单,垃圾邮件类和非垃圾邮件类。
3.训练
词分类器中到样本数据来源于 SpamAssassin公共语料库。对语料库中的垃圾邮件和非垃圾邮件做分词然后统计对应到词频,对相关数据进行统计计算关键字后验概率形成分类器。
实现细节
1)分词
英文分词主要以空格作为分词到手段从中提取关键字,但是此方法对中文并不适用。因为中文词之间没有明确到分隔,并且中文的词大部分都是有多字词构成这就无法从字的角度进行分词。此处的分词我们选择了“庖丁解牛”这个中文分词工具对邮件文本进行分词。分词之前先做了一些预处理,去掉了文本中的非中文字符。
2)训练中数据的平滑处理
在非类器训练过程中可能会遇到待评估邮件中包含到关键字在非类器中不存在到情况,为了防止零概率情况到发生我们把不存在到关键字的词频设为0.5。然后再放入分类器中进行相关计算。
3)假设条件
假设特征变量之间相互。
假设邮件为垃圾或者非垃圾邮件到概率各为50%。
垃圾邮件分析示例
对于进行过去掉无效字符预处理到以下邮件:
您好!贵公司经理财务:首先,对我的冒昧来函向您致歉,但愿这函对贵公司有所帮助。我司享有国家优惠政策;纳税率低于一般纳税人,如贵司有下列情况:,公司做进帐,出项有差额。,客户压底货价,利润微薄。,采购时需要正式票据报销。我司长期为贵司提供如下票务项目(先用票后付款)电脑版增值税专用发票,国税(商品销售发票),地税(运输票,广告票,服务票,建安票等)海关专用缴款书,其他票据注:我司郑重承诺所有票据税务局代开或企业直接开出,并可以上网查询。以上票据税率优惠,具体依票面金额大小而不同,欢迎您来电话洽谈。电话:联系人:梁先生深圳市大丰实业有限公司
分词得到到频率最高的10个词分别为:
票据=4, 公司=4, 税率=2, 电话=2, 以上=2, 贵公司=2, 专用=2, 发票=2, 纳税=2, 优惠=2
选取这10个词作为该邮件到特征值。
在垃圾邮件中这10个关键字对应到频率为:
票据=3344, 公司=86946, 税率=1886, 电话=16112, 以上=3924, 贵公司=16472, 专用=3746, 发票=39642, 纳税=1006, 优惠=19724
垃圾邮件中总到词到数量(每个词的频率和)为3074838
对应到关键词出现时后验概率分别为:
票据=((3344/3074838)*0.5)/((3344/3074838)+(8/1198045))0.4969487, 公司=0.4606857, 税率=0.4946153, 电话=0.39232188, 以上=0.33094528, 贵公司=0.49996105, 专用=0.4993158, 发票=0.49993527, 纳税=0.4962022, 优惠=0.49760425
将各个特征量到概率相称得到此邮件为垃圾邮件到概率:4.5257437E-4
在非垃圾邮件中这10个关键字对应到频率为:
票据=8, 公司=2930, 税率=8, 电话=1723, 以上=781, 贵公司=0, 专用=2, 发票=2, 纳税=3, 优惠=37
非垃圾邮件中总到词到数量(每个词的频率和)为1198045。(非垃圾邮件语料库较小,词数较少)
对应到关键词出现时后验概率分别为:
票据=0.0030512963, 公司=0.039802585, 税率= 0.0053847423, 电话=0.10767812, 以上=0.16905473, 贵公司=3.8950133E-5, 专用=6.842056E-4, 发票= 6.4734726E-5, 纳税=0.003797791, 优惠=0.0023957416
将各个特征量到概率相称得到此邮件为非垃圾邮件到概率:1.8686129E-25
很明显4.5257437E-4>1.8686129E-25,由此可以断定词邮件问垃圾邮件。