概率生成模型(Probabilistic Generative Model)与朴素贝叶斯(Naive Bayes)

问题引入:假设有2个不同的class C1与C2,C1与C2里面分别有N1和N2个样本,现在要对某件物品x进行分类,X一定属于C1与C2中的某一类。

先引进贝叶斯公式:
在这里插入图片描述

P(C1|x)即x属于C1类别的概率,这里是二分类,所以我们可以用0.5作为界限,P>0.5则属于C1,否则属于C2。

P(C1)=N1/(N1+N2),P(C2)=N2/(N1+N2),所以现在得知道P(x|C1)和P(x|C2),即在C中取出一个样本,是X的概率。这里就需要知道C1和C2的总体服从什么分布,在你不确定总体服从什么分布的情况下,高斯分布往往就是最好的选择。
所以这里假设C1和C2的总体均服从多维正态分布,接下来就是利用极大似然估计法来估计出协方差矩阵∑和U,这个过程较为复杂,具体见下面纸质推导过程:
概率生成模型(Probabilistic Generative Model)与朴素贝叶斯(Naive Bayes)_第1张图片
概率生成模型(Probabilistic Generative Model)与朴素贝叶斯(Naive Bayes)_第2张图片
概率生成模型(Probabilistic Generative Model)与朴素贝叶斯(Naive Bayes)_第3张图片
求出两个参数之后,我们用概率密度近似代表概率,即:
在这里插入图片描述
由此,就可以算出P(C1|x),再与0.5比较即可。

为了降低模型复杂度,让C1与C2的总体共用一个协方差矩阵,而均值还是按照上述极大似然估计得到,推算过程比较复杂,就直接得到结论:
在这里插入图片描述
做实验也可以发现,共用一个协方差矩阵有效地提高了分类准确率

对决策函数P(C1|x)继续化简:

所以说,我们先根据C1和C2得到N1,N2,并估算出u1,u2,∑,进而算出w和b,最后代入:
在这里插入图片描述
再将最后结果与0.5比较,就可得出答案。

而所谓朴素贝叶斯(Naive Bayes),就是说所有特征都是相互独立的,也就是说P(C|x)=P(C|x1)*P(C|x2)…P(C|xn),这个时候的协方差矩阵除了对角线其余位置都是0。

你可能感兴趣的:(Machine,Learning,笔记,算法与数学泛谈,朴素贝叶斯算法,机器学习,python)