美文网首页
贝叶斯分类方法---简单入门

贝叶斯分类方法---简单入门

作者: 一心一意弄算法 | 来源:发表于2017-05-03 15:46 被阅读59次

    朴素贝叶斯分类法


    首先是“朴素”一词的由来:为了简化计算,方法假设一个属性值在给定类上的影响独立于其它属性的值,称为类条件独立性。

    先验概率:根据以往的分析得到的概率。后验概率:事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小。

    贝叶斯定理如下:

    p(X),p(H)都是先验概率,可以由训练数据求的。p(X|H)为后验概率。现在大致的概念已经扫清,接下来则是如何在朴素贝叶斯分类器中使用贝叶斯定理。

    假设有M个分类(K1,K2,......,Km),给定数据为X,那么X属于Ki分类的条件为:

    P(Ki | X) > P(Kj | X)          1<= i,j <=m, i != j

    由于P(X) 是不变的,所以只需要比较 P(X | Ki)P(Ki) 的大小。

    工作过程如下(举例说明):

    (1)假设D是训练数据。分为两类C4 = yes , C4 = No

    Age(C1)   收入(C2) 信用(C3)   购买(C4

    年轻                   高                  高              No

    年轻                    低                  高                Yes

    年老                    高                  高                No

    年老                    高                  高               Yes

    年老                    高                  低              Yes

    年轻                    高                 低              yes

    则:P(C4 = no) = P(C4 = yes) =  1/2 = 0.5  。

    P(C1 = 年老 |  C4 = yes) =  1/2 = 0.5 。P(C1 = 年老 |  C4 = no) =  1/2 = 0.5 。

    P(C2 = 高 | C4 = yes) =3/4。P(C2 = 高 | C4 = no) =1/2。

    P(C3 = 高 | C4 = yes) =  1/2。P(C3 = 高 | C4 = no) =  1。

    假设此时有一个用户X(C1 = 年老,C2 = 高, C3  = 高),计算是属于购买,还是没购买。

    则:P(X|C4 = yes) = 0.5 *0.75 * 0.5 = 0.1875  。P(X|C4 = no) = 0.5 * 0.5 * 1 = 0.25  。

    所以:用户X最有可能不会购买,属于C4 = no 的分类。

    存在问题:

    如果遇到零概率怎么办?

    单的规避技巧:(拉普拉斯校准)如果训练数据D很大,以至于对每个计数+1造成的概率变化可以忽略不计,可以避免概率数值为零的情况。

    如 0 / 100 , 10 / 100 , 90 / 100 转变为 1 /103, 11/103, 91 / 103

    scikit-learn

    在scikit-learn中,一共有3个朴素贝叶斯的分类算法类。分别是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先验为高斯分布的朴素贝叶斯,MultinomialNB就是先验为多项式分布的朴素贝叶斯,而BernoulliNB就是先验为伯努利分布的朴素贝叶斯。

    相关文章

      网友评论

          本文标题:贝叶斯分类方法---简单入门

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