机器学习数学原理(4)——朴素贝叶斯算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_x_1996/article/details/70941333

机器学习数学原理(4)——朴素贝叶斯模型

朴素贝叶斯模型(Naive Bayes Model),是一种基于贝叶斯定理特征条件独立假设的分类方法,与决策树模型(Decision Tree Model)同为目前使用最广泛的分类模型之一,在各个领域都有广泛的应用,例如我们经常会用到的垃圾邮件的分类功能。

这篇博文接上一篇博文:机器学习数学原理(3)——生成型学习算法。但又有其相对的独立性与重要性,故笔者重新开一篇博文来介绍。老规矩,由于笔者能力有限,如果有任何不妥甚至错误的地方,欢迎批评指出。

1 朴素贝叶斯模型简介

上百科搜了搜,摘抄下面一段,权当补充一下知识吧…

贝叶斯定理这个在250多年前发明的算法,在信息领域内有着无与伦比的地位。贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法(Naive Bayesian)是其中应用最为广泛的分类算法之一。

如果读者读了上一篇博文可以知道,上一篇博文详细讲述的GDA(高斯判别算法)的特征向量为连续的随机变量。不同于GDA的这个特点,朴素贝叶斯模型的特征向量主要是离散的,如果有连续的,可以通过划分范围来使其离散化。

2 朴素贝叶斯假设

朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立——朴素贝叶斯假设(Naive Bayes Assumption)

换句话来说就是特征向量中一个特征的取值并不影响其他特征的取值。用公式来表示便是:

其中右下角的脚标表示某一个样本向量中的第i项特征。

需要注意的是:这个条件中的“相互条件独立”与“独立随机变量”是有着区别的,后者用公式表示为

现在我们来推导类别的特征向量分布,下面的式子不需要朴素贝叶斯假设也是成立的:

有了朴素贝叶斯假设后可以简化为:

这个假设的意义在于使得分布的计算大大简化!

3 朴素贝叶斯分类器应用实例

这里笔者就借鉴Andrew Ng讲解的垃圾邮件分类器来实例化一下朴素贝叶斯分类器

3.1 文本向量化

文本向量化是为了将邮件转化为可供算法分类的特征向量

文本向量化的基本思路:

  1. 建立词库(Vocabulary),例如将英语词典作为词库,含有n个单词。
  2. 特征向量用x来表示,含有n项。每一项都是伯努利分布,只能取1或者0。每一项对映词库中的一个单词。
  3. 搜索邮件,出现一个单词,就在特征向量x的对应项标1,如果未出现过则标0。

3.2 建立朴素贝叶斯分类器

现在需要建立其概率分布模型,现在知道每一项都是条件伯努利分布,那么我们需要确定的参数有:

现在我们给出m个训练样本作为训练样本空间,那么其对数极大似然函数为:

其中

对该式子使用朴素贝叶斯假设化简后为:

带入极大似然函数后,通过极大似然估计法可以确定需要确定的参数的值为:

这样p(x|y)的模型就已经确定了。

3.3 预测

模型已经确定,现在就可以使用贝叶斯公式对P(y|x)进行确定了。

详细的就看上一篇博文,这里就不再赘述了。

4 后记

这里需要注意的是上述举的例子只是为了让读者更好的理解朴素贝叶斯分类模型的应用,如果要实际应用还有很多要注意的,读者还可能需要的知识有下列(由于重点的关系就不再讲了):

  • 拉普拉斯平滑(针对从未出现的单词)
  • 多项式事件模型(Multinomial Event Model)

猜你喜欢

转载自blog.csdn.net/z_x_1996/article/details/70941333