【问题标题】:How to select the number of cluster centroid in K means [closed]如何选择 K 中的簇质心数意味着 [关闭]
【发布时间】:2015-02-19 00:46:16
【问题描述】:

我正在浏览我找到的算法列表,并尝试实现它们以用于学习目的。现在我正在编写 K 均值编码,并且对以下内容感到困惑。

  1. 怎么知道原始数据集中有多少簇

  2. 除了所有质心必须不同之外,在选择初始集群质心时,我是否遵循任何特定格式?例如,如果我选择不同但靠近的聚类质心,算法会收敛吗?

任何建议将不胜感激

谢谢

【问题讨论】:

  • 我认为,如果人们能解释为什么该帖子被否决,那么我可以尽我最大的努力改善当前和未来的问题
  • 可能是因为how to determine the number of clusters 的问题在这里和文献中都是asked several times。因为这个,我会投票关闭作为重复。
  • @Anony-Mousse Afaik。关闭 -> 重复是处理它的正确方法。
  • @Anony-Mousse 引用的问题特别提到了 R。接受的答案是通用的并总结了常用方法,还给出了 R 代码。但是,该链接中似乎没有询问或回答 OP 的第二个问题。
  • 由于“过于宽泛”而关闭,我建议将其更多地集中在第二个主题上,然后要求重新打开它。至于第二部分,很容易看出 k-means 总是收敛的(因为存在有限的数量或可能的状态,所以不可能有无限的改进)。如果起点不好,可能需要更长的时间,然后收敛到更差的解决方案。

标签: algorithm machine-learning cluster-analysis k-means


【解决方案1】:

在标准 K-Means 中,K 值由您选择,有时基于问题本身(当您知道存在多少类或您想要存在多少类时)有时是“或多或少”随机值.通常,第一次迭代包括从数据集中随机选择 K 个点作为质心。在接下来的迭代中,质心会被调整。

在检查了 K-Means 算法之后,我建议你也看看 K-means++,它是对第一个版本的改进,因为它试图为每个问题找到最好的 K,避免有时由标准的 k-means 算法。

如果您需要更具体的机器学习算法实现细节,请告诉我。

【讨论】:

    【解决方案2】:

    使用 k-means,您可以最小化距离平方和。一种方法是尝试所有可能的 k 值。随着 k 的增加,平方距离的总和应该减少,但是如果你绘制结果,你可能会看到平方距离的总和急剧下降,直到 k 的某个值,然后慢得多。最后一个让你急剧下降的值就是最合理的 k 值。

    k-means 不能保证每次运行都能找到最佳答案,并且它对您给出的起始值很敏感。减少问题的一种方法是多次启动它,使用不同的起始值,然后选择最佳答案。如果较大 k 的答案实际上大于较小 k 的答案,这看起来有点奇怪。避免这种情况的一种方法是使用为 k 个集群找到的最佳答案作为 k+1 个集群的起点之一的基础(稍作修改)。

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2018-10-12
      • 2020-08-17
      • 2018-01-22
      • 2019-04-23
      • 2016-05-05
      • 2021-03-03
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多