贝叶斯分类——朴素贝叶斯算法

来源:互联网 发布:同花顺软件开发怎么样 编辑:程序博客网 时间:2024/05/16 16:11

在机器学习分类算法中,大多数的分类算法,比如决策树,KNN,SVM等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(x) ,要么是条件分布P(Y|X)。

但是朴素贝叶斯却是生成方法,也就是直接找出特征输出Y和特征X的联合分布P(Y,X),然后用P(Y|X)= P(Y, X) /P(X)得出。朴素贝叶斯很直观,计算量也不大,在很多领域有广泛的应用。


相关统计学知识:

条件概率公式:


接着有全概率公式:

以此得出贝叶斯定理:

其中,X表示属性集,Y表示类变量,P(Y)为先验概率,P(X|Y)为类条件概率,P(X)为证据,P(Y|X)为后验概率。贝叶斯分类模型就是用先验概率P(Y)、类条件概率P(X|Y)和证据P(X)来得出联合分布P(X,Y),进而表示后验概率。


朴素贝叶斯模型:

朴素:特征条件独立的假设

贝叶斯:基于贝叶斯定理

基本过程如下:

训练集TrainingSet={(x1,y1),(x2,y2),...,(xN,yN)}包含N条训练数据,输出的类别yi∈{c1,c2,...cK}属于K类中的一类。

从样本我们可以学习得到朴素贝叶斯的先验分布P(Y=Ck),也就是训练集里面出现的频率;

接着学习到条件概率分布P(X=X1,X=X2… | Y=Ck),然后我们就可以用贝叶斯公式得到X和Y的联合分布P(X,Y)了。


而朴素贝叶斯主要在条件概率分布上进行了以下处理:


可以看出,这个很难的条件分布大大的简化了,但是这也可能带来预测的不准确性。一般情况下,样本的特征之间独立这个条件的确

是弱成立的,尤其是数据量非常大的时候。虽然我们牺牲了准确性,但是得到的好处是模型的条件分布的计算大大简化了,这就是贝

叶斯模型的选择。


朴素贝叶斯的参数估计:

当属性变量是离散值时,我们可以使用上述以频率估计条件概率的方法。但在某些时候,可能某些类别在样本中没有出现,这样可能

导致某一部分条件概率为0:P(Xj =xj |Ck)=0,这样会影响后验的估计,为了解决这种情况,我们可以引入拉普拉斯平滑进行处理。

但当属性变量是连续变量时,我们可以采取以下几种方法对条件概率进行估计:

1)把连续的属性离散化,用相应的离散空间替换连续的值。但这种方法不太好区分划分粒度,容易引起误差。

2)假设连续变量服从某种概率分布,通常是高斯分布,然后使用训练数据估计分布函数的参数,也就是高斯分布的均值和方差,进而得到条件概率分布。还有一种进阶的方法是使用混合高斯模型,利用EM算法进行求解。

3)核密度估计:是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。没有时间细写了,可以参考:http://www.cnblogs.com/wt869054461/p/5935992.html