数学建模中的matlab聚类方法

linkage

Z=linkage(Y)使用最短距离算法生成具层次结构的聚类树。

    输入矩阵Y为pdist函数输出的距离行向量。

    Z=linkage(Y,’method’)使用由’method’指定的算法计算生成聚类树。’method’可取表中特征字符串值。

     ’method’取值及含义
       字符串          含  义
    ’single’       最短距离(缺省)
    ’complete’      最大距离
    ’average’      平均距离
    ’centroid’      重心距离
    ’ward’      离差平方和方法(Ward方法)

    输出Z为包含聚类树信息的 (m-1)*3矩阵。聚类树上的叶节点为原始数据集中的对象,由1到m 。它们是单元素的类,级别更高的类都由它们生成。对应于Z中行j 每个新生成的类,其索引为 j+m ,其中m 为初始叶节点的数量。

    第1列和第2列,即Z(i,1:2)包含了被两两连接生成一个新类的所有对象的索引。生成的新类索引为 j+m 。共 有 m-1 个级别更高的类,它们对应于聚类树中的内部节点。

第三列,Z(i,3)包含了相应的在类中的两两对象间的连接距离。

 

cluster

用于划分系统聚类树

T=cluster(Z,'maxclust',n)  其中 Z为上面 linkage 产生的系统聚类树,'maxclust' 为函数如何划定形成聚类阈值或者临界值的方法

n为一共划分为几类

 

dendrogram

H=dendrogram(Z,P) ,利用产生的系统聚类树产生的数据矩阵Z来画聚类树状图。P是节点数,默认30

 

举一个例子:

一堆数据,一共:

1
0.366 1
0.242 0.233 1
0.28 0.194 0.59 1
0.36 0.324 0.476 0.435 1
0.282 0.262 0.483 0.47 0.452 1
0.245 0.265 0.54 0.478 0.535 0.663 1
0.448 0.345 0.452 0.404 0.431 0.322 0.266 1
0.486 0.367 0.365 0.357 0.429 0.283 0.287 0.82 1
0.648 0.662 0.216 0.032 0.429 0.283 0.263 0.527 0.547 1
0.689 0.671 0.243 0.313 0.43 0.302 0.294 0.52 0.558 0.957 1
0.486 0.636 0.174 0.243 0.375 0.296 0.255 0.403 0.417 0.857 0.852 1
0.133 0.153 0.732 0.477 0.339 0.392 0.446 0.266 0.241 0.054 0.099 0.055 1
0.376 0.252 0.676 0.581 0.441 0.447 0.44 0.424 0.372 0.363 0.376 0.321 0.627

对其进行聚类

clc,clear
a=textread('ju.txt');  %读入文件
d=1-abs(a);  %对数据去完绝对值再距离
d=tril(d);  %提出d矩阵的下三角部分
b=nonzeros(d);  %去掉d里面的0元素
b=b';   %转置一下
z=linkage(b,'complete') %按最长距离聚类
y=cluster(z,'maxclust',2) %将变量分为两类
dendrogram(z);  %画树状图

树状图:

数学建模中的matlab聚类方法_第1张图片

y的取值:

y =

     1
     1
     2
     2
     2
     2
     2
     1
     1
     1
     1
     1
     2
     2

z的取值:


z =

   10.0000   11.0000    0.0430
   12.0000   15.0000    0.1480
    8.0000    9.0000    0.1800
    3.0000   13.0000    0.2680
    6.0000    7.0000    0.3370
    2.0000   16.0000    0.3640
   14.0000   18.0000    0.3730
    4.0000   21.0000    0.5230
    5.0000   19.0000    0.5480
    1.0000   17.0000    0.5520
   20.0000   24.0000    0.6550
   22.0000   23.0000    0.6610
   25.0000   26.0000    0.9680

 

 

 

 

 

你可能感兴趣的:(数学建模)