參考:[聚類分析-中大數模的部落格](http://blog.sina.com.cn/s/blog_656fe31a0100hqq5.html)
A = [
1.00 54.89 30.86 448.70 .01 1.01 13.50
2.00 72.49 42.61 467.30 .01 1.64 13.00
3.00 53.81 52.86 425.61 .00 1.22 13.75
4.00 64.74 39.18 469.80 .01 1.22 14.00
5.00 58.80 37.67 456.55 .01 1.01 14.25
6.00 43.67 26.18 395.78 .00 .59 12.75
7.00 54.89 30.86 448.70 .01 1.01 12.50
8.00 86.12 43.79 440.13 .02 1.77 12.25
9.00 60.35 38.20 394.40 .00 1.14 12.00
10.00 54.04 34.23 405.60 .01 1.30 11.75
11.00 61.23 37.35 446.00 .02 1.38 11.50
12.00 60.17 33.67 383.20 .00 .91 11.25
13.00 69.69 40.01 416.70 .01 1.35 11.00
14.00 72.28 40.12 430.80 .00 1.20 10.75
15.00 55.13 33.02 445.80 .01 .92 10.50
16.00 70.08 36.81 409.80 .01 1.19 10.25
17.00 63.05 35.07 384.10 .00 .85 10.00
18.00 48.75 30.53 342.90 .02 .92 9.75
19.00 52.28 27.14 326.29 .00 .82 9.50
20.00 52.21 36.18 388.54 .02 1.02 9.25
21.00 49.71 25.43 331.10 .01 .90 9.00
22.00 61.02 29.27 258.94 .02 1.19 8.75
23.00 53.68 28.79 292.80 .05 1.32 8.50
24.00 50.22 29.17 292.60 .01 1.04 8.25
25.00 65.34 29.99 312.80 .01 1.03 8.00
26.00 56.39 29.29 283.00 .02 1.35 7.80
27.00 66.12 31.93 344.20 .00 .69 7.50
28.00 73.89 32.94 312.50 .06 1.15 7.25
29.00 47.31 28.55 294.70 .01 .84 7.00];
X=A(:,[2:7])';% 6列
Y = pdist(X,'correlation');% 1.計算類間距離
disp('距離距陣:')
M= squareform(Y) % 2.得到距離矩陣.將距離矩陣從上三角形式轉換為方形形式,或反之
% 比較不同類間距離的相關係數哪個最大,選擇最大的作為linkage引數
Z1 = linkage(Y);Z2 = linkage(Y,'complete');Z3 = linkage(Y,'average');Z4 = linkage(Y,'weighted');Z5 = linkage(Y,'centroid');Z6 = linkage(Y,'median');Z7 = linkage(Y,'ward');
R = [cophenet(Z1,Y),cophenet(Z2,Y),cophenet(Z3,Y),cophenet(Z4,Y),cophenet(Z5,Y),cophenet(Z6,Y),cophenet(Z7,Y),]
% 由於引數為'average'的相關係數最大,所以選擇它
Z = linkage(Y,'average'); % 3.建立系統聚類樹(選擇不同的類間距離)
H=dendrogram(Z,0,'colorthreshold','default');% 4.做出譜系聚類圖.畫出分類(輸出冰柱圖)
[C,D] = cophenet(Z,Y)% 5.計算相關係數.C是評價,D是樹圖的高度.相關係數越接近於1則該聚類越理想
%有了D,我們也可以直接得出C=corr(D’,Y’)。
cluster(Z,'maxclust',2) %6.根據linkage函式的輸出建立分類,2表示最後分成兩類
複製程式碼