【问题标题】:Is it possible to approximate when will kmean finish?是否可以估计 kmean 何时完成?
【发布时间】:2012-12-31 05:55:08
【问题描述】:

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

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

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

【问题讨论】:

  • 对不起,现在我知道你的问题了。我删除了我的答案。没有办法知道它什么时候结束,甚至没有接近实时。因为这里有很多因素,你永远无法全部了解:)但我可以说这需要很多时间,所以振作起来并离开它:)

标签: performance cluster-analysis k-means


【解决方案1】:

你确定

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2010-12-25
    • 2018-01-24
    • 2011-04-13
    • 2020-12-20
    • 2019-11-02
    • 2015-08-07
    相关资源
    最近更新 更多