2012-12-30 40 views
2

對不起,這個奇怪的問題,但事情是我正在運行kmeans,使用Yael librarykmean什麼時候結束可以近似?

我得到了大約9,000,000個128維的向量,我打算給1,000,000個質心。它運行在24核CPU上,現在運行了好幾個小時。這是我第一次使用這種海量數據運行kmeans,並且我想知道它何時完成,而不是等待它完成,並在以後知道。

所以問題是,是否有可能估計何時kmean完成?

+0

對不起,現在我收到你的問題。我刪除了我的答案。沒有辦法知道它什麼時候完成,甚至不能接近實時。因爲這裏有很多因素,你永遠都不會知道它們:)但是我可以說它需要很長時間,所以振作起來,離開它:) –

回答

2

你肯定

A)的算法是適合您的問題嗎? K-means是建立在很多假設的基礎上的,尤其是你的集羣具有相同的尺寸

B)你的參數有什麼意義?是一個「聚類」爲「1000000」的任何使用?是否有意義?這些集羣中有多少最終只包含0或1個觀察值?

甲幼稚k均值實現(和99%的幼稚)將使用O(n*k*i)其中n是觀測值的數目,k是簇的數目和i是所需的迭代直到收斂的數量。所以明顯是它嚴重縮小到1000000簇。 但更糟的是:k-means會在最壞的情況下測試O(k^n)作業。通常少得多,但顯然這個數字高度依賴於簇的數量。因此,更多的集羣,你通常需要更多的迭代,直到收斂!

相關問題