在机器学习分类算法中,大多数的分类算法,比如决策树,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)核密度估计:是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。没有时间细写了,可以参考:/wt869054461/p/5935992.html
如果觉得《贝叶斯分类——朴素贝叶斯算法》对你有帮助,请点赞、收藏,并留下你的观点哦!