Python人工智能参考---朴素贝叶斯进行垃圾邮件分类最最最简单实战

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) ,所以这封邮件为垃圾邮件

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/13126253.html