我们能否自动选择 K 值,尝试所有可能的值 (k=1,.., n),其中 n 是要聚类的实例数。然后我们保留通过最小二乘法求得最小值的 K 值。
这种策略能奏效吗?
我们能否自动选择 K 值,尝试所有可能的值 (k=1,.., n),其中 n 是要聚类的实例数。然后我们保留通过最小二乘法求得最小值的 K 值。
这种策略能奏效吗?
这是自动聚类的一个已知问题,如何选择/调整聚类的数量以使其代表“真实”聚类。
层次聚类在这方面更有帮助。对于像 K-means 这样的算法,这并不容易,研究已经尝试了各种方法来确定最佳聚类数量(例如,采用信息理论标准,如 Akaike 信息标准 - AIC)。
维基百科文章中给出的概述和其中的参考资料。
确定数据集中的聚类数量(通常在 k-means 算法中标记为 k 的数量)是数据聚类中的常见问题,并且是与实际解决聚类问题的过程不同的问题。
[..]k 的正确选择通常是模棱两可的,其解释取决于数据集中点分布的形状和比例以及用户所需的聚类分辨率。此外,在没有惩罚的情况下增加 k 将始终减少生成的聚类中的错误量,如果每个数据点都被视为自己的聚类(即,当 k 等于数据点的数量 n 时),则在极端情况下为零错误。直观地说,k 的最佳选择将在使用单个集群的数据最大压缩和通过将每个数据点分配给自己的集群的最大准确性之间取得平衡。如果从数据集属性的先验知识中看不到适当的 k 值,则必须以某种方式选择它。有几种方法可以做出这个决定。
聚类平方和 (WCSS) 内的检查 oif 是用于为 k-means 选择聚类数量的方法之一。还有其他众所周知的方法,例如肘法。
请参阅此 R 包,了解用于选择集群数量的其他方法范围(用于 k-means 和其他一些方法)https://cran.r-project.org/web/packages/NbClust/NbClust.pdf
补充上面的答案。
使用肘部方法,如果您引入称为“肘部力量”的量,您还可以以自动方式定量确定集群的数量(而不是使用这种方法通过眼睛进行)。基本上,它基于肘部图的导数和一些更多的信息增强技巧。有关肘部力量的更多详细信息,请参阅以下出版物的补充信息: