朴素贝叶斯

来源:互联网 发布:lol免费充点卷软件. 编辑:程序博客网 时间:2024/06/04 17:39

贝叶斯定理

贝叶斯能干什么?

逆向概率问题,也就是已知P(A|B)的情况下,求解P(B|A)的问题。通常P(A|B)很容易由统计特性得出,P(B|A)则很难知道。

P(B|A)=P(A|B)P(B)P(A)

朴素贝叶斯

为何称朴素?

叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。

步骤?

1、设x={a1,a2,...,am}为一个待分项,每个a是x的一个属性;

2、类别集合为C={y1,y2,...,yn}

3、计算x属于每个分类的条件概率P(y1|x),P(y2|x),...,P(yn|x)

4、找出概率最大的那一个,如果P(yk|x)=max{P(y1|x),P(y2|x),...,P(yn|x)},则xyk

上述步骤,其关键就在于第三步我们如何求得x输入各个类的概率,这是个逆向概率问题,可以做样来做:

1、找一个已知分类的待分类项集合,该集合称为训练样本集;

2、统计各个类别下各个特征属性的条件概率估计,即

P(a1|y1),P(a2|y1),...,P(am|y1);P(a1|y2),P(a2|y2),...,P(am|y2);...P(a1|y2),P(a2|y2),...,P(am|y2);

3、如果各个属性条件独立,则根据贝叶斯定理,有

P(yi|x)=P(x|yi)P(yi)P(x)

然而,对于所有的分类,P(x)都是一样的,也就是说要找到最大的那个P(x|yi)P(yi)就行了,而之后yi就是要求的分类类别了。由于各个特征属性是条件独立的啊,所以,

P(x|yi)P(yi)=P(a1|yi)P(a2|yi)...P(am|yi)P(yi)=P(yi)j=1mP(aj|yi)

总结下

贝叶斯分类器就是在说已知x求他的yi,也就是要算使得P(yi|x)最大的那个yi为x的类别,但是这个不好求的,他是个逆向概率问题,所以我们要应用贝叶斯定理把问题转化一下,根据贝叶斯定理我们知道,

P(yi|x)P(x)=P(x|yi)P(yi)

然后P(yi|x)就可以写成这个样儿:
P(yi|x)=P(x|yi)P(yi)P(x)

然后对于所有类别来说大家的P(x)都是一样的,因为要分类的数据一样,这样一来就可以直接考虑使分子最大就行了:

yi=argmaxyiP(yi|x)=argmaxyiP(x|yi)P(yi)

又由于它是个朴素的贝叶斯,各个属性条件独立,所以最终又可以拆分开来,

yi=argmaxyiP(yi|x)=argmaxyiP(x|yi)P(yi)=argmaxyiP(yi)j=1mP(aj|yi)

最后一行中的P(yi)P(aj|yi)在训练集确定的情况下都是可求的,所以也就解决了这个分类问题。

参考

算法杂货铺