资源简介
代码说明
代码仅供学习研究,未经允许,请勿擅自商用。
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
评论
共有 条评论