朴素贝叶斯分类

来源:互联网 发布:红色警戒mac迅雷下载 编辑:程序博客网 时间:2024/06/05 16:38

因为最近在用到贝叶斯网络,在学习贝叶斯网络之前只好先了解下朴素贝叶斯分类了。我在这里把我了解的信息总结一下:
1)贝叶斯分类用的就是贝叶斯定理,这个定理比较简单,但是太实用了。公式如下:
P(A|B)=P(B|A)P(A)P(B)
2)在很多时候,我们只能获取到P(B|A)P(A),但是 实在是想求P(A|B),那么就可以使用这个贝叶斯定理了。
3)那么什么是贝叶斯分类?假定我们有A1,A2,,An,那么分别计算出来了P(Ai|B),i=1,2,,n,那个P最大,那么B就是什么类别的。通俗的所贝叶斯分类,就是使用贝叶斯定理来进行分类的。
4)在使用的时候,其实还是需要很多假设,但是凭空的来说,意义不大,我们这里给出一个例子,来展示下如何使用。

特别声明,这个例子是我胡编乱造的哈,不是真实的数据,只是为了知道怎么来用。

假定给了一大10000个水果,有西瓜(用C=0表示)5500个和香蕉(C=1表示)4500个,对每一个水果分别进行了如下特征的提取:
颜色(a1表示,绿色为0,黄色为1)
重量(a2表示,分别有>0.5kg和<0.5kg)
粗细(a3表示,粗为0,细为1)

给了一个绿色的重量在<0.5kg的细的水果,你猜测下最有可能是什么?

解题的过程如下:
1)分别计算每个类别的概率
P(C=0)=550010000=0.55
p(C=1)=0.45

2)分别计算每个类别下每个特征的概率
P(a1=0|C=0)=0.9
P(a1=1|C=0)=0.1
P(a2>0.5|C=0)=0.7
P(a2<0.5|C=0)=0.3
P(a3=0|C=0)=0.8
P(a3=1|C=0)=0.2

P(a1=0|C=1)=0.2
P(a1=1|C=1)=0.8
P(a2>0.5|C=1)=0.1
P(a2<0.5|C=1)=0.9
P(a3=0|C=1)=0.3
P(a3=1|C=1)=0.7

3)计算当前水果分别是西瓜和香蕉的概率,假定当前待检测的水果(记录为F)是绿色(a1=0)、<0.5kg(a2<0.5)、以及细的(a3=1)
P(C|F)=P(F|C)P(C)P(F)
因为对于当前检测水果来说它的概率是一定的,也就是个常数,所以只需要考虑分子就可以了。也就是:
P(F|C)P(C)=P(a1=0,a2<0.5,a3=1|C)P(C)
在计算P(a1=0,a2<0.5,a3=1|C)的时候,我们给了一个假设就是说这些特征(a1,a2,a3)都是独立的,那么我们就可以这样计算了:
P(a1=0,a2<0.5,a3=1|C)=P(a1=0|C)P(a2<0.5|C)P(a3=1|C)

那么接下来就是计算了:

P(F|C=0)P(C=0)=P(a1=0|C=0)P(a2<0.5|C=0)P(a3=1|C=0)P(C=0)=0.90.30.20.55=0.0297

P(F|C=1)P(C=1)=P(a1=0|C=1)P(a2<0.5|C=1)P(a3=1|C=1)P(C=1)=0.20.90.70.45=0.0567

此时我们可以知道,这个水果非常有可能属于香蕉。
这就完成了一个贝叶斯分类的全过程。值得一提的是,在这个例子中所有的特征都是离散的,那么根据频率就可以直接计算出来,但是如果特征是连续的咋办?一般我们都假设了是符合高斯分布的,用高斯分布函数来计算出来概率。

1 0
原创粉丝点击