zoukankan      html  css  js  c++  java
  • 朴素贝叶斯分类

    参考:http://www.cnblogs.com/phinecos/archive/2008/10/21/1315948.html

    朴素贝叶斯分类

     

    也许你觉得这理论还不是很懂,那我再举个简单的例子,让大家对这个算法的原理有个快速的认识。(注:这个示例摘抄自《机器学习》这本书的第三章的表3-2.

    假设给定了如下训练样本数据,我们学习的目标是根据给定的天气状况判断你对PlayTennis这个请求的回答是Yes还是No

    Day

    Outlook

    Temperature

    Humidity

    Wind

    PlayTennis

    D1

    Sunny

    Hot

    High

    Weak

    No

    D2

    Sunny

    Hot

    High

    Strong

    No

    D3

    Overcast

    Hot

    High

    Weak

    Yes

    D4

    Rain

    Mild

    High

    Weak

    Yes

    D5

    Rain

    Cool

    Normal

    Weak

    Yes

    D6

    Rain

    Cool

    Normal

    Strong

    No

    D7

    Overcast

    Cool

    Normal

    Strong

    Yes

    D8

    Sunny

    Mild

    High

    Weak

    No

    D9

    Sunny

    Cool

    Normal

    Weak

    Yes

    D10

    Rain

    Mild

    Normal

    Weak

    Yes

    D11

    Sunny

    Mild

    Normal

    Strong

    Yes

    D12

    Overcast

    Mild

    High

    Strong

    Yes

    D13

    Overcast

    Hot

    Normal

    Weak

    Yes

    D14

    Rain

    Mild

    High

    Strong

    No

     可以看到这里样本数据集提供了14个训练样本,我们将使用此表的数据,并结合朴素贝叶斯分类器来分类下面的新实例:

    (Outlook = sunny,Temprature = cool,Humidity = high,Wind = strong)

    我们的任务就是对此新实例预测目标概念PlayTennis的目标值(yesno).

    由上面的公式可以得到:

    可以得到:

          P(PlayTennis =yes) = 9/14 = 0.64,P(PlayTennis=no)=5/14 = 0.36

          P(Wind=Stong| PlayTennis =yes)=3/9=0.33,p(Wind=Stong| PlayTennis =no)=3/5 = 0.6

    其他数据类似可得,代入后得到:

    P(yes)P(Sunny|yes)P(Cool|yes)P(high|yes)P(Strong|yes) = 0.0053

    P(no)P(Sunny|no)P(Cool|no)P(high|no)P(Strong|no)=0.0206

    因此应该分类到no这一类中。

    NB文本分类器 思路:(基于词频)

    1.输入一个文档。
    2.对每个文档的每个词进行p(word,classify)=p(word)*p(classf|word)计算。计算这个概率展开的先验概率和后验概率。(所以这里用到的都是tf-idf而已,没有用到熵,所以是非常朴素的贝叶斯)
    3.然后将这个文档的所有词的概率p(word,classify)相乘,这样结果就是这个文档属于这个classify的概率了。、
    4.对这个文档的所有class的概率排序,哪个class概率高,就认为该文档输入哪个class.

  • 相关阅读:
    HAIP异常,导致RAC节点无法启动的解决方案
    ORA-00600: internal error code, arguments: [kcbo_unlink_q_3], [0x3710B87B0]
    impdp导入报错之ORA-39126
    ORA-27102: out of memory (2019-11-29 18:30)
    ORA-00371: not enough shared pool memory
    Warning: VKTM detected a time drift.
    Cable master (POJ No.1064)
    二分查找
    结构体和类的operator<
    mybatis(基于annotation的方法知道就行了)
  • 原文地址:https://www.cnblogs.com/lifegoesonitself/p/3491953.html
Copyright © 2011-2022 走看看