Python人工智能参考---朴素贝叶斯进行垃圾邮件分类最最最简单实战
一、总结
一句话总结:
a、用最简单的实例来演示 算法是最方便的能洞悉算法实质的方式
b、朴素贝叶斯注意有多个词表,而不是一个混合的词表
1、朴素贝叶斯进行垃圾邮件分类的计算的时候的注意点是什么?
【P(关键词1,关键词2))可以不计算】:P(结果|关键词1,关键词2) = P(关键词1,关键词2|结果)*P(结果)/P(关键词1,关键词2))中P(关键词1,关键词2))为恒量,可以不计算,因为不不同结果情况下这个值都是一样的
【没出现的词概率弄低点】:比如弄成1/1000,需要看数据量
2、朴素贝叶斯进行垃圾邮件分类时,词表是分一个还是分两个?
两个:一个是正常邮件词频,一个是垃圾邮件词频
3、朴素贝叶斯进行垃圾邮件分类演算时,【计算测试邮件】的具体步骤是什么?
1、测试邮件为正常邮件的几率:0.5*10^(-6)
2、测试邮件为垃圾邮件的几率:125*10^(-6)
3、比较得出测试邮件为哪种邮件:为正常邮件的几率明显低于垃圾邮件,所以是垃圾结果是垃圾邮件
1、测试邮件为正常邮件的几率 P(正常邮件|便宜,电器) = P(便宜,电器|正常邮件)*P(正常邮件)=P(便宜|正常邮件)*P(电器|正常邮件)*P(正常邮件)=(1/1000)*(1/1000)*(2/4) =0.5*10^(-6) 2、测试邮件为垃圾邮件的几率 P(垃圾邮件|便宜,电器) = P(便宜,电器|垃圾邮件)*P(垃圾邮件)=P(便宜|垃圾邮件)*P(电器|垃圾邮件)*P(垃圾邮件)=(1/4)*(1/1000)*(2/4) =125*10^(-6) 3、比较得出测试邮件为哪种邮件 直接比大小好了,就不计算概率了:125*10^(-6) > 0.5*10^(-6) ,所以这封邮件为垃圾邮件
4、朴素贝叶斯解决问题思路?
统计各个分类的词语的概率,根据概率公式(根据测试邮件中的词语)来算测试邮件分别是垃圾邮件和正常邮件的概率
二、朴素贝叶斯进行垃圾邮件分类最简单实战
为方面演示说明,取词取少,真实的情况可以分词,全取
1、数据
比如正常邮件1:
明天上午6点上班(为方面演示说明,取:明天 上班)
比如正常邮件2:
因为你工作勤奋,下个月即将升值加薪。(为方面演示说明,取:勤奋 加薪)
比如垃圾邮件1:
域名 347/元 一年,你值得拥有。(为方面演示说明,取:值得 拥有)
比如垃圾邮件2:
最便宜的洗发水,非常值得入手。(为方面演示说明,取:便宜 值得)
测试邮件1:
最便宜的电器,最便宜的电脑(为方面演示说明,取:便宜 电器)
2、解答过程
步骤一:获取正常邮件词频
明天 1
上班 1
勤奋 1
加薪 1
步骤二:获取垃圾邮件词频
值得 2
拥有 1
便宜 1
步骤三:计算测试邮件
0、注意点:
P(结果|关键词1,关键词2) = P(关键词1,关键词2|结果)*P(结果)/P(关键词1,关键词2))中P(关键词1,关键词2))为恒量,可以不计算,因为不不同结果情况下这个值都是一样的
没出现的词概率弄低点,弄成1/1000
1、测试邮件为正常邮件的几率
P(正常邮件|便宜,电器) = P(便宜,电器|正常邮件)*P(正常邮件)=P(便宜|正常邮件)*P(电器|正常邮件)*P(正常邮件)=(1/1000)*(1/1000)*(2/4) =0.5*10^(-6)
2、测试邮件为垃圾邮件的几率
P(垃圾邮件|便宜,电器) = P(便宜,电器|垃圾邮件)*P(垃圾邮件)=P(便宜|垃圾邮件)*P(电器|垃圾邮件)*P(垃圾邮件)=(1/4)*(1/1000)*(2/4) =125*10^(-6)
3、比较得出测试邮件为哪种邮件
直接比大小好了,就不计算概率了:125*10^(-6) > 0.5*10^(-6) ,所以这封邮件为垃圾邮件