谱聚类方法-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.015900];
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);
分類結果:{加拿大},{中國,美國,澳大利亞},{日本,印尼},{巴西},{前蘇聯}
剩余的為一類。
總結
以上是生活随笔為你收集整理的谱聚类方法-MATLAB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滤波器概述
- 下一篇: 好的Java编程习惯