使用 K-Means 和 EM 进行聚类:它们有什么关系?

机器算法验证 机器学习 聚类 数据挖掘 k-均值 期望最大化
2022-01-17 03:57:59

我研究了聚类数据的算法(无监督学习):EM 和 k-means。我继续阅读以下内容:

k-means 是 EM 的一种变体,假设集群是球形的。

有人可以解释上面的句子吗?我不明白球面是什么意思,以及 kmeans 和 EM 是如何相关的,因为一个是概率分配,另一个是确定性的。

另外,在哪种情况下使用 k-means 聚类更好?还是使用 EM 聚类?

3个回答

没有“k-means 算法”。有用于 k-means 的 MacQueens 算法,用于 k-means 的 Lloyd/Forgy 算法,Hartigan-Wong 方法,...

也没有“那个”EM算法。这是一个反复预期可能性然后最大化模型的一般方案。EM 最流行的变体也称为“高斯混合建模”(GMM),其中模型是多元高斯分布。

可以认为 Lloyds 算法由两个步骤组成:

  • E-step,其中每个对象都被分配到质心,这样它就被分配到最可能的集群。
  • M 步,其中模型(=质心)被重新计算(=最小二乘优化)。

... 重复这两个步骤,正如 Lloyd 所做的那样,使其有效地成为一般 EM 方案的一个实例。它与 GMM 的不同之处在于:

  • 它使用硬分区,即每个对象都被分配给一个集群
  • 该模型仅是质心,不考虑协方差或方差

K 表示

  1. 在收敛时将数据点硬分配给一个特定的集群。
  2. 它在优化时使用 L2 范数(Min {Theta} L2 范数点及其质心坐标)。

电磁场

  1. Soft 将一个点分配给集群(因此它给出了任何点属于任何质心的概率)。
  2. 它不依赖于 L2 范数,而是基于期望值,即点属于特定簇的概率。这使得 K-means 偏向于球形簇。

这是一个示例,如果我在 mplus 中执行此操作,这可能会有所帮助并补充更全面的答案:

假设我有 3 个连续变量,并希望根据这些变量识别集群。我将指定一个混合模型(在这种情况下更具体地,一个潜在的轮廓模型),假设条件独立(观察到的变量是独立的,给定集群成员)为:

Model: 
%Overall%
v1* v2* v3*;  ! Freely estimated variances
[v1 v2 v3];   ! Freely estimated means

我会多次运行这个模型,每次指定不同数量的集群,然后选择我最喜欢的解决方案(这样做本身就是一个很大的话题)。

然后运行 ​​k-means,我将指定以下模型:

Model: 
%Overall%
v1@0 v2@0 v3@0;  ! Variances constrained as zero
[v1 v2 v3];      ! Freely estimated means

因此,类成员资格仅基于与观察变量均值的距离。如其他答复所述,差异与此无关。

在 mplus 中这样做的好处是这些是嵌套模型,因此除了能够比较两种方法之间分类的不一致之外,您还可以直接测试约束是否导致拟合更差。顺便说一句,这两个模型都可以使用 EM 算法进行估计,因此差异实际上更多地在于模型。

如果您在 3-D 空间中思考,则 3 表示一个点……以及穿过该点的椭圆体的三个轴的方差。如果所有三个方差都相同,您将得到一个球体。