-1

我正在使用数据集使用 EM 和 K-means 制作 2 个集群。我已经分别实现了 K-means 和 EM 算法。现在我试图从我的 EM 算法实现中推导出 k-means 来进行聚类。我有2个问题。

  1. K-means 被视为广义 EM 算法的一个特例。但是我们需要做出哪些假设才能从 EM 算法中推导出 k-means 呢?

  2. 此外,从编码的角度来看,我们需要在 EM 算法的实现中进行哪些更改,以使其开始表现得与 k-means 算法完全一样?我假设我们需要在两个集群之间共享相同的协方差矩阵。这是正确的假设吗?

这就是我使用 k-means 得到的结果。

聚类 K 均值

这是使用 EM 进行聚类。

聚类 EM

4

1 回答 1

1

K-means 和 EM 聚类非常相关,但并不完全相同。对 EM 的两个更改将使其与 K-means 非常非常相似:

  1. EM 使用多维分布。将分布的标准差约束为在所有维度上都相同。
  2. 修改 EM 的输出以仅生成最可能的集群。EM 产生软簇(一个点在每个簇中的单独概率),而 K-means 产生硬簇(单个簇选择)。

我不知道这些“修复”如何转化为您的特定代码。

我不能 100% 确定在所有情况下,这种 EM 方法都会收敛到与 K-means 完全相同的集群。我相信这两种方法在大多数情况下都会产生非常相似的结果。

于 2016-12-11T13:01:27.460 回答