2014-04-17 57 views
-1

我一直在嘗試很長時間來弄清楚如何執行(在紙上)K-medoids算法,但是我無法理解如何開始和迭代。例如:如何執行K-medoids

enter image description here

我有6點,第k,C1和C2之間的距離矩陣。

如果有人能告訴我如何在這個例子中執行K-medoids算法,我會非常高興?如何開始和迭代?

感謝

回答

0

你有集羣C1和C2給出。

  1. 查找每個羣集中最中心的元素。

  2. 計算新的C1和C2。

  3. 重複1和2,直至收斂

1

多一點的詳細信息,則:

  1. 集合K集羣的所需數量,允許使用2
  2. 選擇隨機K個實體爲medoid m_1,m_2。讓我們選擇X_3(讓我們稱之爲集羣1)和X_5(集羣2)。
  3. 將給定實體分配給由其最接近的medoid表示的集羣。集羣1將由實體(X_1,X_2,X_3 - 僅檢查您的表,這些實體比X_3更接近於X_5)組成,集羣2將爲(X_4,X_5,X_6)。
  4. 更新medoids。集羣的medoid應該是與同一集羣內所有其他實體距離總和最小的實體。 X_2將成爲簇1的新medoid,簇2的X_4。

現在,你必須做的重複步驟3-4,直到收斂。所以,

5分配每個實體到最近medoid聚類(現在這些都是X_2和X_4)。現在,羣集1由實體(X_1,X_2,X_3和X_6)組成,羣集2將爲(X_4,X_5)。 (每個羣集中的實體發生了變化,所以迭代必須繼續)

6-羣集1中距離總和最小的實體仍然是X_2,羣集2中它們是相同的,所以x_4停留。

另一迭代

7-作爲有一個在中心點劃分沒有變化,則集羣將保持不變這意味着它的時間以停止迭代

輸出:2簇羣集1具有實體(X_1,X_2,X_3,X_6),簇2有實體(X_4和X_5)。

現在

,如果我已經開始使用這個不同的初始中心點劃分也許我會得到一個不同的集羣......你不妨檢查一下生成算法初始化。