聚类的方法有很多种,k-means要数最简单的一种聚类方法了,其大致思想就是把数据分为多个堆,每个堆就是一类。每个堆都有一个聚类中心(学习的结果就是获得这k个聚类中心),这个中心就是这个类中所有数据的均值,而这个堆中所有的点到该类的聚类中心都小于到其他类的聚类中心(分类的过程就是将未知数据对这k个聚类中心进行比较的过程,离谁近就是谁)。其实k-means算的上最直观、最方便理解的一种聚类方式了,原则就是把最像的数据分在一起,而“像”这个定义由我们来完成,比如说欧式距离的最小,等等。想对k-means的具体算法过程了解的话,请看这里。而在这篇博文里,我要介绍的是另外一种比较流行的聚类方法----GMM(Gaussian Mixture Model)。

GMM和k-means其实是十分相似的,区别仅仅在于对GMM来说,我们引入了概率。说到这里,我想先补充一点东西。统计学习的模型有两种,一种是概率模型,一种是非概率模型。所谓概率模型,就是指我们要学习的模型的形式是P(Y|X),这样在分类的过程中,我们通过未知数据X可以获得Y取值的一个概率分布,也就是训练后模型得到的输出不是一个具体的值,而是一系列值的概率(对应于分类问题来说,就是对应于各个不同的类的概率),然后我们可以选取概率最大的那个类作为判决对象(算软分类soft assignment)。而非概率模型,就是指我们学习的模型是一个决策函数Y=f(X),输入数据X是多少就可以投影得到唯一的一个Y,就是判决结果(算硬分类hard assignment)。回到GMM,学习的过程就是训练出几个概率分布,所谓混合高斯模型就是指对样本的概率密度分布进行估计,而估计的模型是几个高斯模型加权之和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个Cluster)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。

得到概率有什么好处呢?我们知道人很聪明,就是在于我们会用各种不同的模型对观察到的事物和现象做判决和分析。当你在路上发现一条狗的时候,你可能光看外形好像邻居家的狗,又更像一点点女朋友家的狗,你很难判断,所以从外形上看,用软分类的方法,是女朋友家的狗概率51%,是邻居家的狗的概率是49%,属于一个易混淆的区域内,这时你可以再用其它办法进行区分到底是谁家的狗。而如果是硬分类的话,你所判断的就是女朋友家的狗,没有“多像”这个概念,所以不方便多模型的融合。

从中心极限定理的角度上看,把混合模型假设为高斯的是比较合理的,当然也可以根据实际数据定义成任何分布的Mixture Model,不过定义为高斯的在计算上有一些方便之处,另外,理论上可以通过增加Model的个数,用GMM近似任何概率分布。

混合高斯模型的定义为:

其中K为模型的个数,πk为第k个高斯的权重,则为第k个高斯的概率密度函数,其均值为μk,方差为σk。我们对此概率密度的估计就是要求πk、μk和σk各个变量。当求出的表达式后,求和式的各项的结果就分别代表样本x属于各个类的概率。

在做参数估计的时候,常采用的方法是最大似然。最大似然法就是使样本点在估计的概率密度函数上的概率值最大。由于概率值一般都很小,N很大的时候这个连乘的结果非常小,容易造成浮点数下溢。所以我们通常取log,将目标改写成:

也就是最大化log-likelyhood function,完整形式则为:

一般用来做参数估计的时候,我们都是通过对待求变量进行求导来求极值,在上式中,log函数中又有求和,你想用求导的方法算的话方程组将会非常复杂,所以我们不好考虑用该方法求解(没有闭合解)。可以采用的求解方法是EM算法——将求解分为两步:第一步是假设我们知道各个高斯模型的参数(可以初始化一个,或者基于上一步迭代结果),去估计每个高斯模型的权值;第二步是基于估计的权值,回过头再去确定高斯模型的参数。重复这两个步骤,直到波动很小,近似达到极值(注意这里是个极值不是最值,EM算法会陷入局部最优)。具体表达如下:

1、对于第i个样本xi来说,它由第k个model生成的概率为:

在这一步,我们假设高斯模型的参数和是已知的(由上一步迭代而来或由初始值决定)。

(E step)

(M step)

3、重复上述两步骤直到算法收敛(这个算法一定是收敛的,至于具体的证明请回溯到EM算法中去,而我也没有具体关注,以后补上)。

最后总结一下,用GMM的优点是投影后样本点不是得到一个确定的分类标记,而是得到每个类的概率,这是一个重要信息。GMM每一步迭代的计算量比较大,大于k-means。GMM的求解办法基于EM算法,因此有可能陷入局部极值,这和初始值的选取十分相关了。GMM不仅可以用在聚类上,也可以用在概率密度估计上

统计学习_____GMM模型相关推荐

  1. 统计学习:模型评估与选择--留出法(python实现)

    使用测试集来测试学习器对新样本的判别能力,然后在测试集上的"测试误差"作为泛化误差的近似,且假设测试样本是从样本真实分布中独立同分布采用而得.这样的目的也就是利用测试样本模拟真实模 ...

  2. 机器学习和统计学习的区别:10个统计分析方法

    来源:THU数据派(ID:datapi) 无论你在数据科学中是何种立场,你都无法忽视数据的重要性,数据科学家的职责就是分析.组织和应用这些数据. 著名求职网站 Glassdoor 根据庞大的就业数据和 ...

  3. 《统计学习方法》读书笔记第1章: 统计学习及监督学习概论

    第1章: 统计学习及监督学习概论 统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称为统计机器学习(statstic ...

  4. 统计学习三要素 模型+策略+算法

    统计学习方法都是由模型. 策略和算法构成的. 即统计学习方法由三要素构成, 可以简单地表示为:方法=模型+策略+算法 模型 统计学习首要考虑的问题是学习什么样的模型. 在监督学习过程中, 模型就是所要 ...

  5. 统计学习的三个招式:模型、策略和算法

    统计学习的三个招式:模型.策略和算法 https://mp.weixin.qq.com/s/12yhAZ79i_ENAdtyOX63lQ 李航老师在统计学习方法中讲到:方法=模型+策略+算法 可以说模 ...

  6. 统计学习笔记(2)——感知机模型

    感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而求出感知机模型.感知机模型是神经网络和支持向量机的基础.下面分别从 ...

  7. 【统计学习系列】多元线性回归模型(五)——参数与模型的显著性检验:t检验与F检验

    文章目录 1. 前文回顾 2. 单参数显著性检验--t检验 2.1 问题的提出 2.2 检验统计量--t统计量的构造 2.3 拒绝域的构造 2.4 浅谈p值 3. 回归方程显著性检验--F检验 3.1 ...

  8. 逐步回归选取特征及GAM模型的使用==college数据集(统计学习导论)

    Content 统计学习导论习题 chapter 7 EX-10 问题复现 [问题分析一] 逐步回归选取特征 基于逐步回归分析的特征选择 逐步回归分析的python实现 [问题分析二]GAM GAM的 ...

  9. 【统计学习系列】多元线性回归模型(四)——模型的参数估计II:区间估计

    文章目录 1. 前文回顾 2. ***β*** 的区间估计 2.1 t统计量的构造 2.2 估计区间 3. *σ* 的区间估计 3.1 卡方统计量的构造 3.2 估计区间 4. ***y*** 的区间 ...

最新文章

  1. 【转】反病毒攻防研究第003篇:添加节区实现代码的植入
  2. jsp里面声明了utf-8格式,也写了字符编码过滤器,数据库编码也是utf-8,就连java.......
  3. uwsgi+nginx部署django项目(有图原理的详细展示的)
  4. android123 zhihuibeijing 新闻中心-新闻 页签 ViewPagerIndicator实现
  5. [html] viewport常见设置都有哪些?
  6. 每次登陆都要滑动验证_湖人队冠军成员卡鲁索很吃香:每次谈判都有N支球队点名要他...
  7. 关于代码效率提升的方法心路历程(购物车)
  8. 城市风云儿的装备体系
  9. linux云服务器 个人,使用ownCloud在Linux安装你的个人云服务
  10. 挑战程序竞赛系列(22):3.2弹性碰撞
  11. html表格数据按公式自动计算,Word表格怎么自动填充和计算数据
  12. robotframework框架ui自动化测试上传附件问题
  13. 差分时钟、DQS与DQM - DDRx的关键技术介绍(上)
  14. 网盘修复版新增qq支付仿城通网盘115网盘源码下载
  15. windows作为产品的一些设置和开发(经验之谈)
  16. TCP套接口热迁移REPAIR模式
  17. linux卸载oracle11,centos7卸载oracle11g
  18. 系统分析软件测试,系统软件测试:风险分析
  19. 黄金跳槽期到了,一个优秀程序员的简历应该怎么写
  20. 矢量数据与卫星地图叠加效果最完美的解决方案

热门文章

  1. 远程访问及控制SSH 服务
  2. Unable to make field private final java.lang.String java.io.File.path accessible: module java.base d
  3. oracle hrms,Oracle HRMS解决方案.pdf
  4. ResNet与ResNeXt
  5. 【阿旭机器学习实战】【33】中文文本分类之情感分析--朴素贝叶斯、KNN、逻辑回归
  6. Grunt插件uglify
  7. IT创业见闻11-老板如何“敲打”资深员工?
  8. openmv与stm32之间的通信学习(数字识别)
  9. 将PPT文件内容转换为图片放在Email邮件正文中发送
  10. P3887 [GDOI2014]世界杯