朴素贝叶斯算法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算法_第1张图片


求混合高斯分布的三组参数朴素贝叶斯算法matlab实现以及EM算法_第2张图片
二、EM算法

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

 

朴素贝叶斯算法matlab实现以及EM算法_第3张图片



得到的结论为

 

朴素贝叶斯算法matlab实现以及EM算法_第4张图片

 



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


朴素贝叶斯算法matlab实现以及EM算法_第5张图片

 

三、算法过程:

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

朴素贝叶斯算法matlab实现以及EM算法_第6张图片

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

朴素贝叶斯算法matlab实现以及EM算法_第7张图片

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

朴素贝叶斯算法matlab实现以及EM算法_第8张图片

 

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

 

朴素贝叶斯算法matlab实现以及EM算法_第9张图片

问题的求解过程是这样的:

朴素贝叶斯算法matlab实现以及EM算法_第10张图片

转载来源:http://blog.sina.com.cn/s/blog_6c7b434d01013zwe.html


你可能感兴趣的:(Matlab)