2

很抱歉这个奇怪的问题,但问题是我正在运行 kmeans,使用Yael library

我得到了大约 9,000,000 个 128 维的向量,我将获得 1,000,000 个质心。它在 24 核 CPU 上运行,现在已经运行了好几个小时。这是我第一次用这么大量的数据运行kmeans,我想知道它什么时候完成,而不是等它完成后再知道。

所以问题是,是否有可能估计 kmean 何时结束?

4

1 回答 1

2

你确定吗

A)该算法适合您的问题吗?k-means 建立在许多假设之上,特别是您的集群具有相同的大小

B)你的参数有意义吗?“聚类”成“1000000”有什么吗?是否有意义?这些集群中有多少最终将只包含 0 或 1 个观测值?

一个朴素的 k-means 实现(99% 是朴素的)将使用O(n*k*i)wheren是观察k的数量,是集群的数量,i是在收敛之前所需的迭代次数。所以很明显它扩展到1000000个集群很糟糕。但更糟糕的是:k-means 将在最坏的情况下测试O(k^n)作业。通常要少得多,但显然这个数字高度依赖于集群的数量。因此,集群越多,在收敛之前通常需要的迭代越多!

于 2012-12-30T21:55:08.920 回答