層次聚類(1)

2021-06-20 03:30:48 字數 1695 閱讀 6537

層次聚類演算法不同於其它演算法,主要體現在它不是只生成乙個分類結果,而是產生一系列原模式集合的分類結果,每個分類結果滿足一些限制。

x = ; 是n個l維特徵向量組成的集合,我們就是要對這個集合中的特徵向量分類。

clustering : r = 。是某個聚類結果,就叫他類簇吧,我想這樣叫,也許別人已經定義了類簇,但是我還是想這樣叫他。

如果類簇(clustering)r_1 包含 k個類(cluster),類簇r_2 包含r個類,且r < k, 如果r_1中的每乙個類都是r_2中的某個類的子集,那麼我就說類簇r_1 嵌入到了 r_2中。 

注意,r_1中至少有兩個類是r_2的中某個類的真子集,我沒有深入思考這一點,但是這好像是顯然的。

比如 r_1 = , , }, r_2 = , } ,那麼r_1嵌入了r_2中。

層次聚類的目標就是將x分成多個巢狀的類簇(a hierarchy of nested clusterings),這類演算法大約包含n步,每一步都是利用上一步產生的類簇結果,生成乙個新的類簇,這兩個類簇存在乙個巢狀關係。根據這種巢狀關係,一般層次聚類有兩個方向, 一種方法是從每個特徵向量為一類,n個類,聚成乙個類,另一種是從乙個類,一步步處理到n個類。

前者叫 agglomerative層次演算法,後者叫 divisive層次演算法。

設g(c_i, c_j)為 c_i 和 c_j兩個類之間的近鄰測度(proximity measurement), t 表示 當前層次的序號。 下面敘述的是 gas(generalized agglomerative scheme)

下面的演算法, g 表示的不相似度測度。

initialization:

choose r_0 = , i = 1,...,n} as the initial clustering.

t = 0.

repeat :

t = t + 1;

among all possible pairs of clusters (c_r, c_s) in r_ find the one (c_i,c_j), such that g(c_i, c_j) = min g(c_r,c_s);

define c_q = c_i u c_j and produce a new clustering r_t = (r_ - ) u

until all vectors lie in a single cluster.

給定 模式的特徵向量集

object 1: 1, 2

object 2: 2.5, 4.5

object 3: 2, 2

object 4: 4, 1.5

object 5: 4, 2.5

即 

x = [1, 2; 2.5, 4.5; 2, 2; 4, 1.5; 4, 2.5];
下面的三個命令可以看到層次圖:

y = pdist(x); 

z = linkage(y);

dendrogram(z)

結果如下:

更詳細的解釋,可以參看下面的參考資訊。

參考:《pattern recognition 4th edition》

mathwork website

聚類演算法 層次聚類演算法

層次聚類演算法 hierarchical clustering method 又稱為系統聚類法 分級聚類法。層次聚類演算法又分為兩種形式 凝聚層次聚類 首先將每個物件作為乙個簇,然後合併這些原子簇為越來越大的簇,直到某個終結條件被滿足。層次聚類 首先將所有物件置於乙個簇中,然後逐漸細分為越來越小的簇...

層次聚類簡介

層次聚類分為凝聚式層次聚類和 式層次聚類。凝聚式層次聚類,就是在初始階段將每乙個點都視為乙個簇,之後每一次合併兩個最接近的簇,當然對於接近程度的定義則需要指定簇的鄰近準則。式層次聚類,就是在初始階段將所有的點視為乙個簇,之後每次 出乙個簇,直到最後剩下單個點的簇為止。本文中我們將詳細介紹凝聚式層次聚...

層次聚類 R

層次聚類,又稱為系統聚類。聚類首先要清晰地定義樣本之間的距離關係,距離較近的為一類,較遠的則屬於不同的一類。層次聚類的計算步驟是首先將每個樣本單獨作為一類,然後將不同類之間最近的進行合併,合併後重新計算類間距。這個過程一直持續到將所有樣本歸為一類為之。在計算類間距時有6中不同的常用方法 最短距離 最...