我正在使用数据集使用EM制作2个群集,然后使用K-means。我已经分别实现了K-means和EM算法。现在我试图从我的EM算法实现中导出k-means来进行聚类。我有两个问题。
K-means被视为广义EM算法的特例。但是我们需要做出什么假设才能从EM算法中推导出k-means?
此外,从编码的角度来看,我们需要在实施EM算法时做出哪些改变,以使其开始表现得像k-means算法?我假设我们需要在两个集群之间共享相同的协方差矩阵。这是正确的假设吗?
我们将不胜感激。
修改 这就是我使用k-means获得的。 Clustering K-means
这是使用EM进行群集。Clustering EM
答案 0 :(得分:1)
评论太长了。
K-means和EM聚类非常相关,但不完全相同。 EM的两个变化将使它与K-means非常非常相似:
我不知道这些"如何修复"转换为您的特定代码。
我并非100%确定在任何情况下,这种EM方法都会收敛到与K-means完全相同的聚类。我相信,在大多数情况下,这两种方法会产生非常可比的结果。