K-means与EM的关系
来源:互联网 发布:java web打印word文档 编辑:程序博客网 时间:2024/06/12 00:18
K-means与EM的关系,首先回到初始问题,我们目的是将样本分成k个类,其实说白了就是求每个样例x的隐含类别y,然后利用隐含类别将x归类。由于我们事先不知道类别y,那么我们首先可以对每个样例假定一个y吧,但是怎么知道假定的对不对呢?怎么评价假定的好不好呢?我们使用样本的极大似然估计来度量,这里是就是x和y的联合分布P(x,y)了。如果找到的y能够使P(x,y)最大,那么我们找到的y就是样例x的最佳类别了,x顺手就聚类了。但是我们第一次指定的y不一定会让P(x,y)最大,而且P(x,y)还依赖于其他未知参数,当然在给定y的情况下,我们可以调整其他参数让P(x,y)最大。但是调整完参数后,我们发现有更好的y可以指定,那么我们重新指定y,然后再计算P(x,y)最大时的参数,反复迭代直至没有更好的y可以指定。
这个过程有几个难点,第一怎么假定y?是每个样例硬指派一个y还是不同的y有不同的概率,概率如何度量。第二如何估计P(x,y),P(x,y)还可能依赖很多其他参数,如何调整里面的参数让P(x,y)最大。这些问题在以后的篇章里回答。
这里只是指出EM的思想,E步就是估计隐含类别y的期望值,M步调整其他参数使得在给定类别y的情况下,极大似然估计P(x,y)能够达到极大值。然后在其他参数确定的情况下,重新估计y,周而复始,直至收敛。
上面的阐述有点费解,对应于K-means来说就是我们一开始不知道每个样例对应隐含变量也就是最佳类别。最开始可以随便指定一个给它,然后为了让P(x,y)最大(这里是要让J最小),我们求出在给定c情况下,J最小时的(前面提到的其他未知参数),然而此时发现,可以有更好的(质心与样例距离最小的类别)指定给样例,那么得到重新调整,上述过程就开始重复了,直到没有更好的指定。这样从K-means里我们可以看出它其实就是EM的体现,E步是确定隐含类别变量,M步更新其他参数来使J最小化。这里的隐含类别变量指定方法比较特殊,属于硬指定,从k个类别中硬选出一个给样例,而不是对每个类别赋予不同的概率。总体思想还是一个迭代优化过程,有目标函数,也有参数变量,只是多了个隐含变量,确定其他参数估计隐含变量,再确定隐含变量估计其他参数,直至目标函数最优。
对比混合高斯模型和K-means可以发现,混合高斯使用了“软”指定,为每个样例分配的类别是有一定的概率的,同时计算量也变大了,每个样例i都要计算属于每一个类别j的概率。与K-means相同的是,结果仍然是局部最优解。对其他参数取不同的初始值进行多次计算不失为一种好方法。
- K-means与EM的关系
- K-means学习进阶以及它与EM的关系
- Machine learning10------K-means聚类算法与EM算法的关系
- k-means与EM算法小结
- GMM&K-means&EM
- EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
- K-Means聚类原理 及与EM关联
- EM算法结合k-means
- 再论EM算法的收敛性和K-Means的收敛性
- k-means和EM算法的Matlab实现
- K-means聚类算法背后的EM思想
- K-means 与 K-means++
- 聚类1-K-means-EM算法
- EM算法在K-Means中的运用
- KNN与K-Means的区别
- KNN与K-Means的区别
- KNN与K-Means的区别
- KNN与K-Means的区别
- 强制类型转换与非强制类型转换后出现的问题
- Django url管理之include
- 大数相加_超过longlong类型
- Java 内存模型及GC原理
- 判断两个数组是否相等
- K-means与EM的关系
- 150. Evaluate Reverse Polish Notation
- Spring Boot 2.0.0参考手册_中英文对照_Part III_13
- 随机优化的进一步理解
- C语言基础回顾-1
- Neural Networks学习笔记
- hdu 2152 普通母函数
- 混合开发的大趋势之一React Native之页面跳转(2)+物理返回+特定平台代码
- 数据结构实验之二叉树三:统计叶子数