朴素贝叶斯

作者: owolf | 来源:发表于2018-09-08 14:00 被阅读1次

            在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,但是朴素贝叶斯却是生成方法。

    朴素贝叶斯分类算法核心算法:贝叶斯公式。

    朴素贝叶斯的使用场景:各个特征之间是相互独立的,没有关系。

    如何理解这句话,看例题:

            根据上述数据集,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?

    这里我们联系到朴素贝叶斯公式:

    p(不帅、性格不好、身高矮、不上进|嫁) = p(不帅|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上进|嫁)---------->要使这个公式成立,需要各个特征之间相互独立。

    而朴素贝叶斯算法就是假设各个特征之间相互独立。

    为什么需要假设特征之间相互独立呢?

    1、假如没有这个假设,那么我们对右边这些概率的估计其实是不可做的,这么说,我们这个例子有4个特征,其中帅包括{帅,不帅},性格包括{不好,好,爆好},身高包括{高,矮,中},上进包括{不上进,上进},那么四个特征的联合概率分布总共是4维空间,总个数为2*3*3*2=36个。36个,计算机扫描统计还可以,但是现实生活中,往往有非常多的特征,每一个特征的取值也是非常之多,那么通过统计来估计后面概率的值,变得几乎不可做,这也是为什么需要假设特征之间独立的原因。

    2、假如我们没有假设特征之间相互独立,那么我们统计的时候,就需要在整个特征空间中去找,比如统计p(不帅、性格不好、身高矮、不上进|嫁)。我们就需要在嫁的条件下,去找四种特征全满足分别是不帅,性格不好,身高矮,不上进的人的个数,这样的话,由于数据的稀疏性,很容易统计到0的情况。 这样是不合适的。

            根据上面俩个原因,朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是一个较强的假设,朴素贝叶斯也由此得名!这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

    所以公式整理以后变为:

    整理训练数据中,嫁的样本数如下:

    分别计算各个概率:

    p(嫁) = 6/12(总样本数) = 1/2

    p(不帅|嫁) = 3/6 = 1/2

    p(性格不好|嫁)= 1/6

    p(矮|嫁) = 1/6

    p(不上进|嫁) = 1/6

    总样本为:

    p(不帅) = 4/12 = 1/3

    p(性格不好) = 4/12 = 1/3

    p(身高矮) = 7/12

    p(不上进) = 4/12 = 1/3

    将以上概率带入公式,就能得出嫁的概率。

    总结:理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

    而在属性相关性较小时,朴素贝叶斯性能最为良好。

    相关文章

      网友评论

        本文标题:朴素贝叶斯

        本文链接:https://www.haomeiwen.com/subject/onykgftx.html