zoukankan      html  css  js  c++  java
  • 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) ,所以这封邮件为垃圾邮件

     
  • 相关阅读:
    HTTP协议详解【转】
    Spring中的IOC和AOP
    Servlet生命周期
    Struts2基本原理【转】
    继承映射的三种方式
    树状数组(两个树状数组累计)
    二维数组数组(区间更新+单点查询)
    东西海岸(逆序对)
    离散化+单点更新+区间求和
    单调栈+dp
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13126253.html
Copyright © 2011-2022 走看看