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

     
  • 相关阅读:
    zookeeper使用场景
    zookeeper安装配置
    hadoop 远程调试
    deep learning笔记
    Sentiment Analysis(1)-Dependency Tree-based Sentiment Classification using CRFs with Hidden Variables
    PRML阅读笔记 introduction
    Python 学习笔记(2)
    python nltk 学习笔记(5) Learning to Classify Text
    python nltk 学习笔记(4) Writing Structured Programs
    python nltk 学习笔记(3) processing raw text
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13126253.html
Copyright © 2011-2022 走看看