Matlab提供的兩種聚類分析方法
一種是利用 clusterdata函式對樣本資料進行一次聚類,其缺點為可供使用者選擇的面較窄,不能更改距離的計算方法;
另一種是分步聚類:
(1)找到資料集合中變數兩兩之間的相似性和非相似性,用pdist函式計算變數之間的距離;(2)用 linkage函式定義變數之間的連線;
(3)用 cophenetic函式評價聚類資訊;
(4)用cluster函式建立聚類。
1.Matlab中相關函式介紹
1.1 pdist函式
呼叫格式:Y=pdist(X,’metric’)
說明:用 ‘metric’指定的方法計算 X 資料矩陣中物件之間的距離。
X:一個m×n的矩陣,它是由m個物件組成的資料集,每個物件的大小為n。
metric’取值如下:
‘euclidean’:歐氏距離(預設);
‘seuclidean’:標準化歐氏距離;
‘mahalanobis’:馬氏距離;
‘cityblock’:布洛克距離;
‘minkowski’:明可夫斯基距離;
‘cosine’:
‘correlation’:
‘hamming’:
‘jaccard’:
‘chebychev’:Chebychev距離。
1.2 squareform函式
呼叫格式:Z=squareform(Y,..)
說明: 強制將距離矩陣從上三角形式轉化為方陣形式,或從方陣形式轉化為上三角形式。
1.3 linkage函式
呼叫格式:Z=linkage(Y,’method’)
說 明:用‘method’引數指定的演算法計算系統聚類樹。
Y:pdist函式返回的距離向量;
method:可取值如下:
‘single’:最短距離法(預設);
‘complete’:最長距離法;
‘average’:未加權平均距離法;
‘weighted’: 加權平均法;
‘centroid’: 質心距離法;
‘median’:加權質心距離法;
‘ward’:內平方距離法(最小方差演算法)
返回:Z為一個包含聚類樹資訊的(m-1)×3的矩陣。
1.4 dendrogram函式
呼叫格式:[H,T,…]=dendrogram(Z,p,…)
說明:生成只有頂部p個節點的冰柱圖(譜系圖)。
1.5 cophenet函式
呼叫格式:c=cophenetic(Z,Y)
說明:利用pdist函式生成的Y和linkage函式生成的Z計算cophenet相關係數。
1.6 cluster 函式
呼叫格式:T=cluster(Z,…)
說明:根據linkage函式的輸出Z 建立分類。
1.7 clusterdata函式
呼叫格式:T=clusterdata(X,…)
說明:根據資料建立分類。
T=clusterdata(X,cutoff)與下面的一組命令等價:
Y=pdist(X,’euclid’);
Z=linkage(Y,’single’);
T=cluster(Z,cutoff);
2. Matlab程式
2.1 一次聚類法
X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900];
T=clusterdata(X,0.9)
2.2 分步聚類
Step1 尋找變數之間的相似性
用pdist函式計算相似矩陣,有多種方法可以計算距離,進行計算之前最好先將資料用zscore函式進行標準化。
X2=zscore(X); %標準化資料
Y2=pdist(X2); %計算距離
Step2 定義變數之間的連線
Z2=linkage(Y2);
Step3 評價聚類資訊
C2=cophenet(Z2,Y2); //0.94698
Step4 建立聚類,並作出譜系圖
T=cluster(Z2,6);
H=dendrogram(Z2);
http://www.cnblogs.com/blessw/archive/2010/03/27/1698635.html