比较并行 k 均值批处理与小批处理速度

PS1*_*PS1 7 scikit-learn

我正在尝试使用 k 均值对 1000 个维度、250k 个向量进行聚类。我正在使用的机器有 80 个双核。

只是确认一下,是否有人将 k-means 默认批处理并行版本的运行时间与 k-means mini-batch 版本进行了比较?sklean 文档上的示例比较页面没有提供太多信息,因为数据集非常小。

非常感谢您的帮助。

问候,

AN6*_*6U5 2

传统观点认为,Mini-Batch K-Means对于超过 10,000 个样本,应该更快、更高效。由于您有 250,000 个样本,如果您不想自行测试,则可能应该使用小批量。

请注意,您引用的示例可以通过更改此行中的 n_samples 轻松更改为 5000、10,000 或 20,000 点示例:

X, labels_true = make_blobs(n_samples=3000, centers=centers, cluster_std=0.7)
Run Code Online (Sandbox Code Playgroud)

我同意这对于 1000 维向量不一定具有相同的缩放比例,但由于您正在构建示例并使用 or ,k-means并且mini batch k-means只需要一秒钟在它们之间切换...您应该为您的5k、10k、15k、20k 样本的 1000 维向量。

从理论上讲,没有理由因为向量维度Mini-Batch K-Means而表现不佳K-Means,而且我们知道它对于较大的样本量会更好,所以我会即兴使用小批量,例如行动优于研究的偏见。