層次聚類分為凝聚式層次聚類和**式層次聚類。
凝聚式層次聚類,就是在初始階段將每乙個點都視為乙個簇,之後每一次合併兩個最接近的簇,當然對於接近程度的定義則需要指定簇的鄰近準則。
**式層次聚類,就是在初始階段將所有的點視為乙個簇,之後每次**出乙個簇,直到最後剩下單個點的簇為止。
本文中我們將詳細介紹凝聚式層次聚類演算法。
對於凝聚式層次聚類,指定簇的鄰近準則是非常重要的乙個環節,在此我們介紹三種最常用的準則,分別是 max, min, 組平均。如下圖所示:
圖 2. 層次聚類計算準則
每次選最近的兩個簇合併,我們將這兩個合併後的簇稱之為合併簇。
若採用 max 準則,選擇其他簇與合併簇中離得最遠的兩個點之間的距離作為簇之間的鄰近度。若採用 min 準則,取其他簇與合併簇中離得最近的兩個點之間的距離作為簇之間的鄰近度。若組平均準則,取其他簇與合併簇所有點之間距離的平均值作為簇之間的鄰近度。
重複步驟 1 和步驟 2,合併至只剩下乙個簇。
下面我們看乙個例子:
下圖是乙個有五個點的而為座標系:
圖 3. 層次聚類舉例
下表為這五個點的歐式距離矩陣:
表 1. 歐式距離原始矩陣
p1p2
p3p4
p5p1
00.81
1.32
1.94
1.82
p20.81
01.56
2.16
1.77
p31.32
1.56
00.63
0.71
p41.94
2.16
0.63
00.71
p51.82
1.77
0.71
0.71
0根據演算法流程,我們先找出距離最近的兩個簇,p3, p4。
合併 p3, p4 為 ,根據 min 原則更新矩陣如下:
min.distance(, p1) = 1.32;
min.distance(, p2) = 1.56;
min.distance(, p5) = 0.70;
表 2. 歐式距離更新矩陣 1
p1p2
p5p1
00.81
1.32
1.82
p20.81
01.56
1.77
1.32
1.56
00.71
p51.82
1.77
0.71
0接著繼續找出距離最近的兩個簇,, p5。
合併 , p5 為 ,根據 min 原則繼續更新矩陣:
min.distance(p1, ) = 1.32;
min.distance(p2, ) = 1.56;
表 3. 歐式距離更新矩陣 2
p1p2p10
0.81
1.32
p20.81
01.56
1.32
1.56
0接著繼續找出距離最近的兩個簇,p1, p2。
合併 p1, p2 為 ,根據 min 原則繼續更新矩陣:
min.distance(, ) = 1.32
表 4. 歐式距離更新矩陣 3
01.32
1.32
0最終合併剩下的這兩個簇即可獲得最終結果,如下圖:
圖 4. 層次聚類舉例結果
聚類演算法 層次聚類演算法
層次聚類演算法 hierarchical clustering method 又稱為系統聚類法 分級聚類法。層次聚類演算法又分為兩種形式 凝聚層次聚類 首先將每個物件作為乙個簇,然後合併這些原子簇為越來越大的簇,直到某個終結條件被滿足。層次聚類 首先將所有物件置於乙個簇中,然後逐漸細分為越來越小的簇...
層次聚類(1)
層次聚類演算法不同於其它演算法,主要體現在它不是只生成乙個分類結果,而是產生一系列原模式集合的分類結果,每個分類結果滿足一些限制。x 是n個l維特徵向量組成的集合,我們就是要對這個集合中的特徵向量分類。clustering r 是某個聚類結果,就叫他類簇吧,我想這樣叫,也許別人已經定義了類簇,但是我...
層次聚類 R
層次聚類,又稱為系統聚類。聚類首先要清晰地定義樣本之間的距離關係,距離較近的為一類,較遠的則屬於不同的一類。層次聚類的計算步驟是首先將每個樣本單獨作為一類,然後將不同類之間最近的進行合併,合併後重新計算類間距。這個過程一直持續到將所有樣本歸為一類為之。在計算類間距時有6中不同的常用方法 最短距離 最...