EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
来源:互联网 发布:美国石油钻井数据 编辑:程序博客网 时间:2024/06/02 04:07
K-Means算法简介
K-Means算法是一种常用的聚类算法,它认为由一组数据点构成的一个聚类中,聚类内部点之间的距离应该小于数据点与聚类外部的点之间的距离。假设我们有一组数据集
为了形式化地说明这个问题,我们定义一些符号:(1)由于存在
为了求解这一聚类问题,我们设置“整个数据集点到各自聚类中心的距离的平方和”为目标函数,即
由于在目标函数中存在变量
K-Means算法具体实现
其流程如下所示:
(1)初始化:为
(2)固定
(2)固定各数据点类别,关于
K-Means迭代步骤与EM算法的关系:
(2)(3)中分别更新
K-Means算法与GMM(高斯混合模型)的EM解法的关系
对比K-Means算法和GMM的EM解法,我们会发现二者具有很强的相似性。K-Means算法对数据点的聚类进行了“硬分配”,即每个数据点只属于唯一的聚类;而GMM的EM解法则基于后验概率分布,对数据点进行“软分配”,即每个单独的高斯模型对数据聚类都有贡献,不过贡献值有大有小。
而其实,我们可以将K-Means算法归类为GMM的EM解法的一个特例:
考虑一个GMM(混合高斯模型),其中每个分量的协方差矩阵均为
E步骤:由之前GMM的EM解法知识可知:
当
M步骤:
当
由于
从此可知,K-Means算法其实是GMM的EM解法在高斯分量协方差
实际应用中,对于 K-means,我们通常是重复一定次数然后取最好的结果,但由于 GMM 每一次迭代的计算量比 K-means 要大许多,使用GMM时,一个更流行的做法是先用 K-means (已经重复并取最优值了)得到一个粗略的结果,然后将其作为初值(只要将 K-means 所得的 聚类中心传给 GMM即可),再用 GMM 进行细致迭代。
相关文章:
EM算法(期望最大化)——理论部分http://blog.csdn.net/tingyue_/article/details/70474042
EM算法(期望最大化)——应用:GMM http://blog.csdn.net/tingyue_/article/details/70576025
- EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
- EM算法(期望最大化)——应用:GMM
- 期望最大化(EM)算法
- 期望最大化(EM)算法与高斯混合模型(GMM)证明
- 期望最大化算法EM
- EM 期望最大化算法
- EM-期望最大化算法
- EM算法(期望最大化)——理论部分
- GMM&K-means&EM
- EM算法与GMM
- 期望最大化算法(Expectation Maximum, EM)
- soledede--期望最大化(EM)算法
- EM算法理解——从朴素贝叶斯角度出发
- 期望最大化(EM)算法(讲的很好)
- 期望最大化(EM)算法(讲的很好)
- k-means与EM算法小结
- 从 GMM 到 EM 算法
- EM算法与GMM的训练应用
- 大数据-Hadoop学习笔记08
- python修改文件内容
- 学习日记
- python转exe
- 外面引入页面PC端
- EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
- C++类的交叉调用
- 设计模式-策略模式
- NorFlash和NandFlash区别
- 浏览器故事
- HOG特征(Histogram of oriented gradients)
- 条件编译的使用
- Linux的chattr与lsattr命令详解
- ElasticSearch 5.3——单台服务器多节点