从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球。遗憾的是在很多分类问题中,属于同一类别的样本点并不满足“椭圆”分布的特性。这就引入了高斯混合模型。——可以认为是基本假设!

高斯混合模型Gaussian Mixture Model (GMM)

摘自:http://www.infocool.net/kb/Spark/201609/193351.html

由于本文写的不g够完整详细,给出一个学习链接: 
      http://www.cnblogs.com/CBDoctor/archive/2011/11/06/2236286.html 
       混合模型:通过密度函数的线性合并来表示未知模型 p(x) 
      为什么提出混合模型,那是因为单一模型与实际数据的分布严重不符,但是几个模型混合以后却能很好的描述和预测数据。 
       高斯混合模型(GMM),说的是把数据可以看作是从数个高斯分布中生成出来的。虽然我们可以用不同的分布来随意地构造 XX Mixture Model ,但是 GMM是最为流行。另外,Mixture Model 本身其实也是可以变得任意复杂的,通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布。 
      二维情况下高斯分布模拟产生数据的分布是椭圆,如下图: 
 
      显然对于下面图(a),单一的高斯概率分布函数无法表达,仔细看近似包含三个椭圆,所以可以将三个高斯概率分布函数线性组合起来,各个函数有不同的参数和权重,这样就能很好的描述所有出现的这些样本了。这大概是高斯混合模型可以用于分类的精髓所在吧?图(b)已经明确了样本分类。 

      求解方法为最大似然参数估计方法,EM优化算法,我将在《Spark2.0机器学习系列之8-2:…》中详细介绍。 
      大家可能会想到,上图(a)中的数据分布太具有实验性质了,实际中那有这样的数据,但GMM牛逼的地方就在于通过增加 Model 的个数(也就是组成成分的数量K,其实就是我们的分类个数),可以任意地逼近任何连续的概率密分布。所以呢,理论上是绝对支持的,而实际上呢,对于多维特征数据我们往往难以可视化,所以难把握的地方也就在这里,如何选取K 值?换句化说聚类(无监督分类)拿什么标准如何评估模型的好坏?因为如果对结果有好评价指标的话,那么我们就可以实验不同的K,选出最优的那个K就好了,到底有没有呢? 
      这个话题又比较长,有人认为聚类的评估一定要做预先标注,没有Index总是让人觉得不靠谱,不是很让人信服。但是也有不同学者提出了大量的评估方法,主要是考虑到不同聚类算法的目标函数相差很大,有些是基于距离的,比如k-means,有些是假设先验分布的,比如GMM,LDA,有些是带有图聚类和谱分析性质的,比如谱聚类,还有些是基于密度的,所以难以拿出一个统一的评估方法,但是正是有这么些个原理上的不同,记着不与算法本身的原理因果颠倒的情况下,那么针对各类方法还是可以提出有针对性的评价指标的,如k-means的均方根误差。其实更应该嵌入到问题中进行评价,很多实际问题中,聚类仅仅是其中的一步,可以对比不聚类的情形(比如人为分割、随机分割数据集等等),所以这时候我们评价『聚类结果好坏』,其实是在评价『聚类是否能对最终结果有好的影响』。(本部分来综合了知乎上的部分问答:如有不妥之处,敬请告知。http://www.zhihu.com/question/19635522) 
      关于聚类的评估问题,我计划再写另外一篇文章《Spark聚类结果评估浅析》,不知道能否写好。 
CSDN上还有文章可参考: 聚类算法初探(七)聚类分析的效果评测 http://blog.infocool.net/itplus/article/details/10322361

//训练模型
val gmm=new GaussianMixture().setK(2).setMaxIter(100).setSeed(1L) val model=gmm.fit(dataset) //输出model参数 for(i<-0 until model.getK){ println("weight=%f\nmu=%s\nsigma=\n%s\n" format(model.weights(i), model.gaussians(i).mean, model.gaussians(i).cov)) //weight是各组成成分的权重 //nsigma是样本协方差矩阵 //mu(mean)是各类质点位置 

转载于:https://www.cnblogs.com/bonelee/p/7216093.html

高斯混合模型Gaussian Mixture Model (GMM)——通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布...相关推荐

  1. 高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)

    高斯混合模型(Gaussian Mixture Model)是机器学习中一种常用的聚类算法,本文介绍了其原理,并推导了其参数估计的过程.主要参考Christopher M. Bishop的<Pa ...

  2. 高斯混合模型(Gaussian Mixture Model)

    混 合 模 型 使 我 们 能 够 一 瞥 以 后 会 用 到 的 一 个 非 常 重 要 的 概 念 -- 潜 变 量(latent variable).潜变量是我们不能直接观测到的随机变量.

  3. 【机器学习之高斯混合模型(Gaussian Mixed Model,GMM) 】

    文章目录 前言 一.高斯混合模型(Gaussian Mixed Model,GMM) 是什么? 二.详解GMM 1.初步原理 2.EM算法 3.深读原理 3.GMM(高斯混合模型)和K-means的比 ...

  4. 聚类(1)——混合高斯模型 Gaussian Mixture Model

    聚类系列: 聚类(序)----监督学习与无监督学习 聚类(1)----混合高斯模型 Gaussian Mixture Model 聚类(2)----层次聚类 Hierarchical Clusteri ...

  5. 语音识别学习日志 2019-7-14 语音识别基础知识准备2 {EM算法与混合高斯模型(Gaussian mixture model, GMM)}

    https://blog.csdn.net/lin_limin/article/details/81048411会对GMM和EM做详细介绍 本文参考: http://www.ituring.com.c ...

  6. 详解EM算法与混合高斯模型(Gaussian mixture model, GMM)

    最近在看晓川老(shi)师(shu)的博士论文,接触了混合高斯模型(Gaussian mixture model, GMM)和EM(Expectation Maximization)算法,不禁被论文中 ...

  7. 高斯混合模型(GMM--Gaussian mixture model)

    参考:李航<统计学习方法> http://blog.csdn.net/xmu_jupiter/article/details/50889023 https://www.cnblogs.co ...

  8. 聚类之高斯混合模型(Gaussian Mixture Model)

    k-means应该是原来级别的聚类方法了,这整理下一个使用后验概率准确评测其精度的方法-高斯混合模型. 我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussia ...

  9. 高斯混合模型聚类(GMM)matlab实现

    Gaussian Mixture Model ,就是假设数据服从 Mixture Gaussian Distribution ,换句话说,数据可以看作是从数个 Gaussian Distributio ...

最新文章

  1. 数据结构的简要介绍:图形如何工作
  2. Linux oracle数据库自动备份自动压缩脚本代码
  3. Python爬取房天下租房信息实战
  4. 【ABAP】模式(Pattern)创建与使用
  5. php 赋予最高权限,为PHP执行赋予root权限(一)
  6. centos7安装csvn
  7. 互联网晚报 | 3月27日 星期日 | 东航已正式启动理赔工作;第二部黑匣子数据存储单元外观较为完好,其他部分损毁严重...
  8. ×××与字符串的相互转换
  9. webservice CXF入门服务端
  10. oss按量付费_ACP云计算笔记—VPCamp;OSS
  11. Linux加一存在路由没事吧,Linux 添加永久静态路由的方法
  12. JSP中Session的使用
  13. location对象相关
  14. 百面机器学习——svm基尼系数寻找最优划分
  15. 常用纽扣电池的型号对照表
  16. Crowd 和 JIRA、Confluence、Fisheye and Crucible共享账户集成登入
  17. 查看变量内存的python内置函数是_这68个Python内置函数,建议你吃透
  18. c++ 堆优化版dijkstra 代码实现
  19. R 回归分析 逐步回归
  20. css是什么和css选择器

热门文章

  1. Linux之scp命令实现远程服务器的文件拷贝
  2. java之Servlet的生命周期
  3. linux下运行gnuplot,Gnuplot Linux版下载
  4. 三星s轻奢android+p,三星Galaxy S轻奢版5月21日将至:骁龙660处理器+安卓8.0
  5. python的基础网络编程是下列_Python基础(六)网络编程
  6. turbolinux mysql 5.0 cluste,Debian -- 新聞 -- Debian GNU/Linux 5.0 發布
  7. 全网最具深度的三次握手、四次挥手讲解,深夜思考
  8. Android社招最全面试题,妈妈再也不用担心我找工作了!
  9. 全卷积神经网路【U-net项目实战】肺结节分割案例分析:DSB3Tutorial
  10. python【Matlibplot绘图库】-绘制三维图像