西瓜书中的《贝叶斯分类器》这一章节提供了非常大的信息,其内容实际上涵盖的很广。
1、贝叶斯决策论:
贝叶斯决策理论方法是统计模型决策中的一个基本方法,其基本思想是:
★已知类条件概率密度(P(A|B))参数表达式和先验概率(P(B))
★利用贝叶斯公式转换成后验概率(P(B|A))
★根据后验概率大小进行决策分类
2、贝叶斯最优分类器:
3、生成式和判别式模型:
备住:
p(x)称为归一化的证据因子,很多书上都没说清楚这一项目,实际上:
P(x)就是上面的分子项在不同类别下的表达式的求和而已,高中学的贝叶斯公式:
所以对于任何一类,其分母项都是一样的,因此,我们仅仅需要计算分子项并且比较分子项的大小来判断样本属于哪一类。
观察上面的式子,P(c)称为先验概率,也就是我们根据以往的经验和分析得到的概率,比如我们常常认为骰子的每一面朝上的概率均为1/6,根据大数定律,当数据集中包含足够的独立同分布样本时,我们可以用各个类的概率占比估计P(c)。
P(x|c) ,x对于c的条件概率,也称为似然,表示,已知c的情况下,x发生的概率。
这里P(c)好求,数据量大的情况下去计算占比即可,麻烦的是P(x|c),我们要求P(x|c)需要用到先了解一些基础知识:
https://blog.csdn.net/tick_tock97/article/details/79885868blog.csdn.net这里可以看到我们需要求出P(x,c)也就是特征与标签的联合概率分布,我们难以求出来P(x,c),因为在现实中一般x的维度比较高并且常常包含各种缺失值、离散值、极值、连续值等,估计这样的一个联合概率分布是非常复杂甚至难以实现的。(其实是废话,如果能够实现的话我们就不需要其它算法了,能够准确估计这个联合分布,那么直接通过公式转化就可以输出样本属于不同类别的概率了。。。)
朴素贝叶斯算法的处理方案是假设每一个特征都是完全独立与其它特征,也就是每个属性独立的对分类结果产生影响:
d是特征的数量,因为对于所有类别来说P(x)都相等,所以最终的贝叶斯判定准则为:
这就是朴素贝叶斯分类器的表达式。
如果特征是离散型,则直接通过计算占比来得到离散特征的概率估计,比如10000个样本下,一个离散特征c中有1000个x1和9000个x2,则P(x1|c)=0.1。
如果是连续特征则一般假设其服从正态分布使用正态分布概率密度函数计算:
上式的均值和标准差均可以通过正态分布的均值与标准差的公式直接计算出来。
可以看到朴素贝叶斯的问题是非常多的,:
1、特征相互独立的假设一般难以满足;
2、样本数量小的情况下类别概率估计等都会非常不准确,比如均值和标准差的计算,用类别的占比来近似类别的真实概率分布等;
代码见下:下面是使用朴素bayes进行文本分类的源代码,来源于《机器学习实战》
from