一、贝叶斯公式

1.1 概率:

机器学习——贝叶斯算法_贝叶斯算法

1.2 拉普拉斯平滑

​拉普拉斯平滑为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计 没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。 假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计, 但可以方便有效的避免零概率问题。 ​


公式:P(yk|x)=P(yk)∗∏P(xi|yk) 公 式 : P ( y k | x ) = P ( y k ) ∗ ∏ P ( x i | y k )


​上述是一个多项乘法公式,其中有一项数值为0,则整个公式就为0,显然不合理, 避免每一项为零的做法: 在分子+1、分母上加N样本种类(分子加k,分母加kN) ​


P(y)=(|Dy|+1)(|D|+N) P ( y ) = ( | D y | + 1 ) ( | D | + N )


​例如:一个班级: 男生(短头发)= 20 个 男生(长头发)= 0 个 女生(短头发)= 15 个 女生(长头发)= 20 个 拉普拉斯平滑概率后 : 男生(短头发)概率 = (20+1)/(55+4) = 21/59 男生(长头发)概率 = (0+1)/(55+4) = 1/59 女生(短头发)概率 = (15+1)/(55+4) = 16/59 女生(长头发)概率 = (20+1)/(55+4) = 21/59 ​

二、朴树贝叶斯分类原理

2.1朴树贝叶斯

​基本流程: 确定特征属性--> 获取训练样本--> 对每个样本计算P(Ci) --> 对每个特征属性 计算所有划分的条件概率P(X1,X1,,,Xn|Ci) --> 对每个类别计算P(X|Ci)*P(Ci)--> 以P(x|yi)P(yi)最大项作为x所属类别 ​

2.2 半朴素基贝本叶流斯程分类器

​在朴素的分类中,我们假定了各个属性之间的独立,这是为了计算方便。 虽然朴素贝叶斯的分类效果不错,但是属性之间毕竟是有关联的,某个属性依赖于另外的属性, 于是就有了半朴素贝叶斯分类器: ​


P(c|x)∝P(c)∏i=1dP(xi|c,pai) P ( c | x ) ∝ P ( c ) ∏ i = 1 d P ( x i | c , p a i )


​在正式进行计算的时候,将另外一个依赖的属性加进去,计算量不会复杂太多, 由于是基于“计数”,所以基本和朴素的计算方式类似。 ​

训练数据集

#大小颜色形状标签1小青色非规则否2大红色非规则是3大红色圆形是4大青色圆形否5大青色非规则否6小红色圆形是7大青色非规则否8小红色非规则否9小青色圆形否10大红色圆形是


机器学习——贝叶斯算法_贝叶斯公式_02


​属性的依赖关系定义如下:大小的依赖属性为:形状,且属性取值为大时依赖形状为圆形; 颜色不存在依赖属性; 形状的依赖属性为大小,且属性取值为圆形时依赖大小为大; 则先验概率 P(c) : P(c = 好果)= (4+1) / (10+2) = 5/12 P(c = 一般) = (6+1) / (10+2) = 7/12 带有依赖属性的类条件概率: P(大小=大 | c=好果,形状=圆形) = (2+1)/(3+2) = 3/5 P(颜色=青色 | c=好果) = (0+1)/(4+2) = 1/6 P(形状=圆形 | c=好果,大小=大) = (2+1) / (3+2) = 3/5 P(大小=大 | c=一般,形状=圆形) = (1+1) /( 2+2) = 2/4 P(颜色=青色 | c=一般) = (5+1)/(6+2) = 6/8 P(形状=圆形 | c=一般,大小=大) = (1+1)/(3+2) = 2/5 P(c=好果) * P(大小=大 | c=好果,形状=圆形) * P(颜色=青色 | c=好果) * P(形状=圆形 | c=好果,大小=大) = 5/12 * 3/5 * 1/6 * 3/5 = 0.025 P(c=一般) * P(大小=大 | c=一般,形状=圆形) * P(颜色=红色 | c=一般) * P(形状=圆形 | c=一般,大小=大) = 7/12 * 2/4 * 6/8 * 2/5= 0.0875 ​

三、代码演示

​sklearn.naive_bayes​​ 提供了3个不同朴树贝叶斯算法

P(Ci|X1,X2,...Xn)=P(X1,X2,...Xn|Ci)∗P(Ci)P(X1,X2,...Xn) P ( C i | X 1 , X 2 , . . . X n ) = P ( X 1 , X 2 , . . . X n | C i ) ∗ P ( C i ) P ( X 1 , X 2 , . . . X n )

sklearn.naive_bayes.GaussianNB 高斯分布     #连续性
sklearn.naive_bayes.MutinomialNB 多项分布 #多项分布-发生频次
sklearn.naive_bayes.BernoulliNB 伯努利分布 #伯努利分布-(0,1)分布

四、总结

应用场景:
文本分析(朴树贝叶斯应用最广泛的领域)
文本分类
垃圾邮件识别
文本情感判别
多分类场景