为什么我们使用 k-means 而不是其他算法?

机器算法验证 聚类 数据挖掘 算法 k-均值
2022-02-28 20:42:29

我研究了 k-means,我得到了这些:k-means 是最简单的算法之一,它使用无监督学习方法来解决已知的聚类问题。它适用于大型数据集。

但是,K-Means 也有以下缺点:

  • 对异常值和噪声非常敏感
  • 不适用于非圆形簇形状——簇的数量和初始种子值需要事先指定
  • 通过局部最优的能力低。

k-means 有什么好的吗,因为似乎弊端超出了 k-means 的优点。

请教我。

3个回答

其他具有更好特征的聚类算法往往更昂贵。在这种情况下,k-means 成为预聚类的一个很好的解决方案,将空间减少为可以应用其他聚类算法的不相交的较小子空间。

K-means 是最简单的。实施和运行。您需要做的就是选择“k”并运行它多次。

大多数更聪明的算法(尤其是好的算法)更难有效实现(您会看到运行时差异的 100 倍因素)并且需要设置更多参数。

另外,大多数人不需要高质量的集群他们实际上对远程为他们工作的任何事情感到满意。另外,当他们有更复杂的集群时,他们真的不知道该怎么做。K-means 使用有史以来最简单的模型(质心)对集群进行建模,这正是他们所需要的:将大量数据简化为质心

K-means 类似于交换排序算法。易于理解,有助于进入主题,但永远不应该用于任何真实的事情。在交换排序的情况下,即使是冒泡排序也更好,因为如果数组部分排序,它可以提前停止。在 K-means 的情况下,EM 算法是相同的算法,但假设集群的高斯分布而不是 K-means 的均匀分布假设。当所有簇都具有对角协方差矩阵时,K-means 是 EM 的边缘情况。高斯结构意味着集群以一种非常好的方式将自身收缩到数据中。这绕过了您在问题中正确提出的严重反对意见。而且 EM 并不比 K-means 贵多少,真的。(我可以在 Excel 电子表格中实现两者。)但是对于严重的集群应用程序,