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

    分类算法

    已知集合x,我们把这个集合称为特征集合,其中每一个元素是一个待分类项。

    已知集合y,我们把这个集合称为类别集合,其中的每一个元素是一个类别。

    我们现在要找到一个函数f,使得y=f(x),即x集合中的每一个待分类项,都能通过f函数找到对应的分类y。

    分类算法的任务就是找到这个f函数。

    朴素贝叶斯算法

    朴素贝叶斯是根据贝叶斯公式得出的。

    贝叶斯公式:

    P(Ai|B) = P(B|Ai)P(Ai) /P(B)

    根据分类算法可知:

    我们的目的就是找到一个f函数(此时这个f函数就是朴素贝叶斯),使得任意x特征有对应的y类别。

    即通过朴素贝叶斯找到“P(类别|特征)”,解释一下就是找到“当某某特征发生的情况下,某某类别也发生的概率”。

    所以套用贝叶斯公式可得:

    P(类别|特征) = P(特征|类别)P(类别) /P(特征)

    朴素贝叶斯算法有一个大前提就是:所有特征条件都是相互独立的。

    下面我们就来解释一下这个前提的意义。

    假设现在小明要出去玩:

    有特征集合x是表示当天的一些情况,有{天气,作业,心情}

    有结果类别集合y代表最后到底去不去,有{去,不去}

    那么天气可以细分为:好、中、差

    作业可以细分为:多、少

    心情可以细分为:好、坏

    如果天气、作业、心情是相互“不独立”的,

    那么特征就有3*2*2=12种组合情况。

    就需要一一统计这12种情况的概率

    即{天气好、作业多、心情好}、{天气好、作业多、心情坏}、{天气好、作业少、心情好}······一共12种。

    在实际问题中特征往往要比这还多,很多组合特征可能根本没法得到。

    如果假定天气、作业、心情相互独立。

    那么就有P{天气,作业,心情} = P{天气}P{作业}P{心情}

    由此,我们只需要找到各自的子特征即可,即{天气好},{天气中}、{天气差}······一共7种。

    特征概率的获取难度大大降低。

    如果只是普通贝叶斯,那么公式为:

    P(去玩 | 天气中,作业多,心情好) = P(天气中,作业多,心情好 | 去玩)P(去玩) / P(天气中,作业多,心情好)

    由上面这个公式可以看出来:

    我们为了求“在天气中,作业多,心情好”这样的前提下,小明出去玩的概率。

    需要知道P(天气中,作业多,心情好),即:同一天天气中,作业多,心情好的概率。

    以及P(天气中,作业多,心情好 | 去玩)P(去玩),即:小明出去玩时,天气中,作业多,心情好的概率。

    自然,要提前找到这些特征概率是十分困难的。

    但如果用朴素贝叶斯算法解这个问题,那么作业、天气、心情就假定成相互独立的了。

    公式变为:

    P(去玩 | 天气中,作业多,心情好) = P(天气中|去玩)P(作业多|去玩)P(心情好|去玩)P(去玩) / P(天气中)P(作业多)P(心情好)

    由公式我们可以看出我们找到前置概率的难度下降了很多。

    变成了找到单一特征条件概率,如 P(天气中)、P(天气中|去玩)

    所以朴素贝叶斯相比贝叶斯的最大区别就是,加上了个条件的独立性假设,大大减少了参数的假设数量。

  • 相关阅读:
    安全和加密
    awk
    CentOS7练习
    CentOS7系统引导顺序以及排障
    网络配置
    RAID阵列搭建
    LVM逻辑卷
    java-web——第九课 request
    java-web——第八课 JSTL的显示格式
    java-web——第七课 JSTL
  • 原文地址:https://www.cnblogs.com/red-code/p/9513634.html
Copyright © 2011-2022 走看看