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

电子常识

2648人已加入

描述

  MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

  朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier,或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。

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

  一、问题提出

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

  matlab

  求混合高斯分布的三组参数

  matlab

  二、EM算法

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

  matlab

  得到的结论为

  matlab

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

  matlab

  三、算法过程:

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

  matlab

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

  matlab

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

  matlab

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

  matlab

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

  matlab

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分