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

2017-05-03  本文已影响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就是先验为伯努利分布的朴素贝叶斯。

上一篇下一篇

猜你喜欢

热点阅读