matlab中的linkage和cluster函數


Linkage:

Agglomerative hierarchical cluster tree(凝聚成層次聚類樹)

語法:

 

 

解釋:

Z=linkage(x),返回Z,是一個X矩陣中行的分層聚類樹(用最短距離算法生成具有層次結構的聚類樹)。輸入的X為pdist函數輸出的距離向量矩陣(pdist函數參考上篇文章)

 

Z=linkage(x,method),使用指定的method創建樹

 

Z=linkage(x,method,metric)利用度量來計算

 

Z=linkage(x,method,pdist_input)將參數傳遞給pdist函數。。。。

 

Z=linkage(x,method,metric,’savememory’,value)當value為true時使用一種內存保存算法,當value為false時使用標准算法。

Z=linkage(Y),用距離矩陣Y表示,Y可以是由pdist函數計算出的,也可以是一個更一般的矩陣

Z=linkage(Y,method)用指定的method創建樹,method描述了 如何測量集群之間的距離。

 

 

Single:最短距離(缺省)

Complete:最大距離

Average:平均距離

Centroid:重心距離

Ward:離差平方和

輸出Z:

Z是一個(m-1)-乘3矩陣,m是原始數據中行的數量。Z的第1和2列包含成對的集群索引,以形成一個二叉樹。葉節點從1到m.葉節點是由所有更高的集群組成的單例集群。每一個新形成的集群,對應於第Z行(I,:),被分配索引m+I。Z(I,1:2)包含構成集群m+I的兩個組件集群的索引。有m-1更高的集群,對應於集群樹的內部節點。Z(I,3)包含在第Z行(I::)中合並的兩個簇之間的鏈接距離。

例如,假設有30個初始節點,第12步集群5和集群7合並。假設它們的距離是1。5。然后Z(12,:)是5 7 1。5。新形成的集群將有索引12+30=42。如果集群42出現在后面一行中,則意味着第12步中創建的集群將被合並到更大的集群中。

比如:

 

 

 

根據結果畫出二叉樹如下:

 

 

第一列,第二列為類的表示,葉子節點為原始數據的行數,1,2之間最短距離為2.2061,聚類為6(原始行數累加所得)

 

Cluters:

Construct agglomerative clusters from linkages(從聚類樹結構中構建聚類)

語法:

 

 

解釋:

T=cluster(Z,’cutoff’,c): 從聚集的層次化集群樹Z中構造集群。Z是一個大小的矩陣(m-1)-乘3(由linkage函數生成),m是原始數據中行的數量。c是將Z切割成集群的閾值。當一個節點及其所有子節點的值都小於c時,集群就會形成,所有節點在節點或下面的所有葉子都被分組到一個集群中。t是一個大小為m的向量,包含每個觀察的群集分配。如果c是一個向量,那么T是一個集群分配的矩陣,每個截止值都有一個列

 

T=cluster(Z,’cutoff’,c,’depth’,d): 通過觀察每個節點下面的深度d來評估不一致的值。默認的深度是2。

 

T=cluster(Z,’cutoff’,c,’criterion’,criterion): 使用指定的標准來形成集群,其中標准是字符串“inconsistent”(默認)或“depth”。“depth”標准使用在節點上合並的兩個子節點之間的距離來測量節點高度。在一個節點的高度小於c的節點的所有葉節點都被分組到一個集群中。

 

T=cluster(Z,’maxclust’,n): 用“depth”准則構造一個最大的n個集群。集群找到最小的高度,通過樹的水平切割留下n個或更少的集群。

如果n是一個向量,那么T是一個集群分配矩陣,每個最大值是一個列。

如;

 

                                                 


從上邊的聚類樹和結果的比較中可以得出,當分為5類時,每個節點單獨是一類,聚成4類時,標號1和標號2聚成第4,其他單獨為一類;當聚成3類時,更具聚類樹,原始數據的標號3和標號5又聚成一類,一次類推。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM