2016-12-27 142 views
2

我使用KMeans和python中的sklearn計算我的聚類的silhouette_score來計算我的聚類,但對於> 1000個樣本,使用> 1000聚類計算silhouette_score非常緩慢。sklearn聚類:確定大型數據集上羣集的最佳數量的最快方法

  1. 是否有更快的方法來確定最佳羣集數量?
  2. 或者我應該改變聚類算法?如果是,那麼對於數據集> 300.000個樣本和大量集羣來說,哪種算法是最好的(也是最快的)算法?

回答

2

尋找聚類數最常見的方法是彎曲曲線法。但它會要求您多次運行KMeans算法以繪製圖形。 https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set維基頁面提到了一些確定聚類數量的常用方法。

+0

此外,你可以使用一個算法,不需要羣集的數量作爲輸入。 DBSCAN或HDBSCAN應根據您的數據集大小進行縮放。 – rth

+0

有沒有辦法用肘部彎曲法自動找到聚類數量? –

+0

根據我的理解,一個程序應該能夠提供基於肘曲線啓發式的聚類數量。 –

0

輪廓分數,而更有吸引力的措施之一,iw O(n^2)。這意味着,計算分數比計算k均值聚類要昂貴得多!

此外,這些分數只是啓發式。他們不會以任何方式產生「最佳」聚類。他們只給出提示如何選擇k,但很多時候你會發現其他k更好!所以不要盲目信任這些分數

相關問題