小批量k-means返回少于k个簇

c_d*_*vid 5 cluster-analysis k-means scikit-learn

我一直在使用小批量k-means,使用scikit-learn实现来聚类大约45000个观测数据集,每个数据集大约有170个特征.我注意到,当k增加时,算法无法返回指定数量的聚类,如果k超过数据集中观察数量的约30%(45000的30%)并继续增加,则返回的聚类数量会增加不再增加了.

我想知道这是否与scikit-learn中实现算法的方式有关,或者是否与其定义有关.我一直在研究提出它的论文,但我无法弄清楚为什么会这样.

有没有人经历过这个?现在有人如何解释这种行为?

Ano*_*sse 4

k 均值可能会失败,因为集群可能会消失

当有大量重复项时,这一点最为明显。

如果所有数据点都相同,为什么应该有多个(非空)簇?

据我所知,它并不是特定于小批量 k 均值。某些实现允许您指定当簇退化时要做什么,例如使用最远的点作为新的簇中心、丢弃簇或保持不变(也许它会再次拾取一个点)。