朴素贝叶斯算法matlab实现以及EM算法

这周,继续学习了朴素贝叶斯算法的一部分知识,看了matlab的贝叶斯分类算法。采用草地潮湿原因模型的一个例子来求证贝叶斯概率以及条件概率、联合概率的分析,详见日志http://blog.sina.com.cn/s/blog_6c7b434d01013ufz.html 

进而对贝叶斯分类进行研究,采用classify函数进行对训练样本的划分。详见日志

http://blog.sina.com.cn/s/blog_6c7b434d01013zv7.html

在对matlab的学习中,发现自己的很多不足,比如matlab算法是基于矩阵的,但线性代数的相关知识遗忘比较多。

在这周的学习中,还研究了EM算法。

EM算法是个聚类算法,即根据给定观察数据自动对数据进行分类。

一、问题提出

给定一些观察数据x,假设x符合如下高斯分布

【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法

混合高斯分布的三组参数【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法
二、EM算法

一个简单问题,该高斯分布的k个分布已知。若该混合高斯分布一共有K个分布,并且对于每个观察到的x,如果我们同时还知道它属于K中的哪一个分布, 则我们可以根据最大似然估计求出每个参数。

【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法

得到的结论为

【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法

但在实际问题中,观察数据x属于哪个高斯分布是未知的,所以要用 EM算法来解决这种实际问题


【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法


 


三、算法过程:


1、用随机函数初始化K个高斯分布的参数,同时保证


【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法


2、依次取观察数据x,比较x在K个高斯函数中概率的大小,把x归类到这K个高斯中概率最大的一个


【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法

3、用最大似然估计,使观察数据是x的概率最大,因为已经在第2步中分好类了,所以,即简单问题的求法。


【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法

4、返回第2步用第3步新得到的参数来对观察数据x重新分类。直到下式概率(最大似然函数)达到最大

【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法
问题的求解过程是这样的:


【每周学习笔记】朴素贝叶斯算法matlab实现以及EM算法

这周,为了弥补线性代数的不足之处,继续研究斯坦福大学Andrew NG的《机器学习》,很多数学推导过程还是很有用的。

下一周,继续研究朴素贝叶斯算法 的应用,使用matlab实现,以及EM算法的应用案例,matlab实现等等。

文章出处:



http://blog.sina.com.cn/s/blog_6c7b434d01013zwe.html

http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html


展开阅读全文

没有更多推荐了,返回首页