什麼是凝聚層次聚類?
凝聚層次聚類是一種自下而上的聚類方法,其中簇包含子簇,子簇依次包含子簇,依此類推。它從將每個物件放置到其自己的簇開始,然後將這些原子簇合併成越來越大的簇,直到某些物件在一個簇中或直到滿足某個特定的終止條件。有幾種層次聚類方法被用於此目的。它們的區別僅在於它們對簇間相似性的描述。
例如,一種稱為 AGNES(凝聚巢狀)的方法使用單鏈接技術,其工作原理如下。假設有一組物件放置在一個矩形中。最初,每個物件都放置到它自己的簇中。然後,根據某個原則逐步合併簇,該原則涉及合併簇間最近物件之間歐氏距離最小的簇。
層次聚類通常使用樹狀圖以圖形方式顯示,樹狀圖顯示了簇-子簇關聯以及簇合並(凝聚檢視)或分裂(分裂檢視)的順序。
基本的凝聚層次聚類演算法。
計算鄰近矩陣,如果需要。
重複
合併最近的兩個簇。
更新鄰近矩陣以反映新簇與原始簇之間的鄰近性。
直到只剩下一個簇。
簇鄰近性通常根據特定型別的簇來定義。例如,幾種凝聚層次聚類技術,包括 MIN、MAX 和組平均,源於簇的基於圖的檢視。
MIN 將簇鄰近性定義為屬於多個簇的兩個最近點之間的鄰近性,或者使用圖方法,即多個節點子集中兩個節點之間的最短邊。
或者,MAX 將多個簇中最遠的兩個點之間的鄰近性作為簇鄰近性,或者使用圖方法,即不同節點子集中兩個節點之間的最長邊。
提出的凝聚層次聚類演算法需要一個鄰近矩陣。這需要儲存 $\mathrm{\frac{1}{2}m^2}$ 個鄰近性(假設鄰近矩陣是對稱的),其中 m 是資料點的數量。跟蹤簇所需的儲存空間與簇的數量成正比,即 m-1,不包括單例簇。因此,總空間複雜度為 $\mathrm{O(m^2)}$。
關於計算複雜度,基本凝聚層次聚類演算法的分析也很簡單。計算鄰近矩陣需要 $\mathrm{O(m^2)}$ 的時間。在此步驟之後,有 m-1 次迭代包含步驟 3 和 4,因為一開始有 m 個簇,並且在每次迭代期間合併兩個簇。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP