这周,继续学习了朴素贝叶斯算法的一部分知识,看了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符合如下高斯分布
一个简单问题,该高斯分布的k个分布已知。若该混合高斯分布一共有K个分布,并且对于每个观察到的x,如果我们同时还知道它属于K中的哪一个分布, 则我们可以根据最大似然估计求出每个参数。
得到的结论为
但在实际问题中,观察数据x属于哪个高斯分布是未知的,所以要用 EM算法来解决这种实际问题
三、算法过程:
1、用随机函数初始化K个高斯分布的参数,同时保证
2、依次取观察数据x,比较x在K个高斯函数中概率的大小,把x归类到这K个高斯中概率最大的一个
3、用最大似然估计,使观察数据是x的概率最大,因为已经在第2步中分好类了,所以,即简单问题的求法。
4、返回第2步用第3步新得到的参数来对观察数据x重新分类。直到下式概率(最大似然函数)达到最大
这周,为了弥补线性代数的不足之处,继续研究斯坦福大学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