1. 程式人生 > >Matlab提供的兩種聚類分析方法

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