Clustering
K-means:實際情況下迭代多少次?
我沒有數據挖掘或大數據方面的行業經驗,所以很想听聽你分享一些經驗。
人們真的會在一個非常大的數據集上運行 k-means、PAM、CLARA 等嗎?或者他們只是隨機從中挑選出一個樣本?如果他們只是對數據集進行抽樣,如果數據集不是正態分佈的,結果是否可靠?
在運行這些算法的實際情況下,我們能否知道在收斂之前通常需要多少次迭代?還是迭代次數總是隨著數據大小而增長?
我問這個是因為我正在考慮開發一種方法來在收斂之前終止迭代算法,但結果仍然可以接受。如果迭代次數超過 1,000 次,我認為值得嘗試,這樣我們可以節省一些計算成本和時間。你怎麼認為?
- K-means 很便宜。您可以負擔得起多次迭代運行它。
- 有壞算法(標準算法)和好的算法。對於好的算法,後期迭代的成本通常遠低於第一次迭代的 1%。
- 確實有很慢的實現。不要使用它們。
- “大”數據上的 K 均值不存在。因為它只適用於低維向量數據。您不會超過具有此類數據的現代服務器的內存。是的,存在更大的數據——但你不能在一個月的 Twitter 數據上使用 k-means,因為它不會給你任何有用的東西。
通過良好的實現,在現代服務器上,您可以找到最大的數據集,其中 k-means 仍然給出有用的結果可能需要不到 1 分鐘的時間來計算直到收斂。那麼為什麼還要考慮迭代限制呢?