資源簡介
代碼說明
代碼僅供學習研究,未經允許,請勿擅自商用。
1.輸入文件格式
輸入的文件要求為N行兩列的形式,兩列分別對應,輸入數據點的X軸坐標和Y軸坐標。
輸入文件格式示例如下:
0.821794 -0.0462153
1.03929 0.060835
1.12046 0.0745568
1.02233 0.0514739
2.代碼支持的凝聚層次聚類算法
通過簡要的修改代碼中函數的參數,代碼可以支持不同的凝聚方法,支持的凝聚方法如下,默認的為代碼本身算法:
單連接算法(默認,最近鄰聚類算法,最短距離法,最小生成樹算法);全連接算法(最遠鄰聚類算法,最長距離法);未加權平均距離法;加權平均法;質心距離法;加權質心距離法;內平方距離法(最小方差算法)
3.代碼支持的距離(相似度)度量公式
通過簡要的修改代碼,代碼支持計算距離的過程采用不同的距離或相似度度量公式,支持的距離(相似度)公式如下,默認為代碼本身才采用的距離公式:
歐氏距離(默認);標準化歐氏距離;馬氏距離;布洛克距離(曼哈頓距離,城市街區距離);閔可夫斯基(明可夫斯基)距離;余弦相似度;相關性相似度;漢明距離;Jaccard相似度;切比雪夫距離。

代碼片段和文件信息
clear?all
clc
close?all
mdist=input(‘輸入坐標文件名字\n‘);
disp(‘讀取數據坐標‘)
%獲取坐標
%文件格式為數據的二維的坐標,
%共兩列第一列為x軸坐標,第二列為y軸坐標
xx=load(mdist);
%獲取數據的個數存至number
[number?row]=size(xx);
%獲取距離矩陣,第二參數指定距離計算方法
%可選參數有‘euclidean‘:歐氏距離(默認);‘seuclidean‘:標準化歐氏距離;
%‘mahalanobis‘:馬氏距離;‘cityblock‘:布洛克距離;‘minkowski‘:明可夫斯基距離;
%‘cosine‘:余弦距離?‘correlation‘:相關性?‘hamming‘:漢明距離?‘jaccard‘:Jaccard相似度
%‘chebychev‘:Chebychev距離。
yy=pdist(xx‘euclidean‘);
%獲取聚類,第二參數指定層次聚類方式
%‘single‘:單連通,最短距離法(默認);‘complete‘:全連通,最長距離法;‘average‘:未加權平均距離法;?
%‘weighted‘:?加權平均法;‘centroid‘:?質心距離法;‘median‘:加權質心距離法;‘ward‘:內平方距離法(最小方差算法)
zz=linkage(yy‘single‘);
%指定獲取簇類個數
Ncluster=input(‘輸入類個數\n‘);
%獲取指定Ncluster個數的聚類結果
c?=?cluster(?zz‘maxclust‘?Ncluster?);?
?
%獲取繪圖所需顏色
%需要用到linspecer.m文件
%下載地址
%http://www.mathworks.com/matlabcentral/fileexchange/42673-beautiful-and-distinguishable-line-colors-+-colormap
?if(Ncluster>12)
?Color?=?linspecer(?Ncluster?);
?else
?????Color?=?linspecer(?Ncluster?‘qualitative‘?);
?????end
?????
?
?for?i=1:Ncluster
?????for?j?=?1:number
?????if(c(j)?==?i)????
?????hold?on
?????plot(xx(j1)xx(j2)‘o‘‘MarkerFaceColor‘Color(i:)‘MarkerEdgeColor‘Color(i:))
?????end
?????end
?end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1486??2015-06-10?15:23??HierarchcalCluster.m
?????文件???????6062??2014-02-12?14:30??linspecer.m
?????文件?????354942??2015-06-10?21:54??代碼說明.pdf
-----------?---------??----------?-----??----
???????????????362490????????????????????3
評論
共有 條評論