• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

EM角度理解kmeans

ml admin 2个月前 (06-28) 114次浏览 0个评论 扫描二维码

最近需要做一个国家区域的聚类分析,使用的是 kmeans 聚类方法,构造接近 900 维特征来进行聚类。使用 sklean 基本上就可以使用较少的代码来实现。中间使用过 TSNE 观察降维之后的特征在二维平面上的分布情况。

kmeans 应该算是聚类算法中最简单的聚类算法了,在 spark 中也有其对应的实现。

至于本篇文章的由来那就是归功于 LDA 的研究,LDA 是贝叶斯化的 PLSA,主题分布和词分布都是不确定的。这其中参数的确定需要使用到 EM,回首之前写过一篇最大似然估计和 EM 算法的一篇文章,文章的附录部分说到了 kmeans 其中包含这 EM 的思想,哎呀,所以产生了这篇文章,想了想 kmeans 的实现过程。、

说 kmeans 蕴含着 em 的思想主要是一开始我们不知道样本的分类,也不知道样本的中心点,所以需要给出初始的随机数据,然后在知道其中一个的情况下去得到另外一个变量的结果,在反过来去优化前一个变量。这大概就是 EM 要循环迭代的原因。

EM 就是两步  expect 和 max 过程

对应到 kmeans 中,expect 的过程就是在随机初始化 N 个初始中心点后,依次计算训练集中的每一个点属于哪一类,给每一个样本打上初始的标签。

max 这一步对应着  kmeans 在这一步要计算所有的点到其对应的中心点的距离平方和,如果没有达到收敛的阈值,那么我们就需要回到 expect 这一步如此反复直至收敛。

 


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明EM 角度理解 kmeans
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!