cluster-analysis - 小批量 k 均值返回少于 k 个集群

标签 cluster-analysis scikit-learn k-means

我一直在与 mini-batch k-means 一起工作使用 scikit-learn实现对大约 45000 个观测值的数据集进行聚类,每个观测值具有大约 170 个特征。我注意到,随着 k 的增加,算法无法返回指定数量的集群,如果 k 超过数据集中观察数量的 30%(45000 的 30%)并继续增加,则返回的集群数量不会不再增加。

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

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

最佳答案

k-means 可能会失败,因为 集群可以消失 .

当您有很多重复项时,这一点最为明显。

如果您的所有数据点都相同,那么为什么应该有多个(非空)集群?

据我所知,它并不特定于小批量 k 均值。一些实现让您指定当集群退化时要做什么,例如使用最远的点作为新的聚类中心,丢弃该聚类,或保持不变(可能会再次拾取一个点)。

关于cluster-analysis - 小批量 k 均值返回少于 k 个集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24919346/

相关文章:

java - DeepLearning4j k-均值非常慢

hadoop - KMeans处理分类变量

cluster-computing - Neo4j 和聚类分析

r - kmeans 提示 "NA/NaN/Inf in foreign function call (arg 1)",什么时候没有?

session - 如何管理 Web 集群中的 session 变量?

python - 如何将 sklearn "LinearRegression"与列表一起使用?

python - cv2.saliency上应用k均值时出现问题

python - 使用 sklearn.AgglomerativeClustering 绘制树状图

互信息的 Python scikit-learn 实现不适用于不同大小的分区

python - 如何计算 K 折交叉验证的不平衡数据集的精度、召回率和 f1 分数?