层次聚类
Produce nested sets of clusters
函数
cluster | 根据凝聚层次聚类树构造凝聚聚类 |
clusterdata | 根据样本数据构造凝聚聚类 |
cophenet | cophenet相关系数 |
inconsistent | inconsistent系数 |
linkage | 凝聚层次聚类树 |
pdist | 两两对象间距离的平均值 |
sequentialfs | 贯序特征选择 |
squareform | 化为距离矩阵格式 |
cluster
根据凝聚层次聚类树构造凝聚聚类
语法
T = cluster(Z,‘cutoff‘,c)
T = cluster(Z,‘cutoff‘,c,‘depth‘,d)
T = cluster(Z,‘cutoff‘,c,‘criterion‘,criterion)
T = cluster(Z,‘maxclust‘,n)
描述
T = cluster(Z,‘cutoff‘,c)从凝聚层次聚类树Z构造聚类,其中,Z由linkage函数生成。Z是一个m-1行3列的矩阵,其中m是原始数据中的观测值个数。c是将Z切成聚类的阈值。如果一个节点及它的所有子节点都有小于c的inconsistent值,那么就形成一个聚类。节点上或其下的所有叶子节点被归并成一个聚类。t是一个包含每个观测值分配的m维向量。
如果c是一个向量,T为一个聚类分配矩阵。其中,每一个cutoff值在矩阵中对应一列聚类分配。
T = cluster(Z,‘cutoff‘,c,‘depth‘,d)通过查找每个节点下d层求inconsistent值。默认层数为2。
T = cluster(Z,‘cutoff‘,c,‘criterion‘,criterion)利用制定的标准形成聚类,其中,criterion为‘inconsistent‘(默认)或‘distance‘。‘distance‘标准用合并成为一个节点的两个子节点间的距离来度量节点的高度。如果一个节点上及其下的所有叶子节点的高度小于c,则它们合并成一个聚类。
T = cluster(Z,‘maxclust‘,n)利用‘distance‘标准构造一个n聚类的最大值。cluster找到一个最小的高度,在这个高度上水平切割树有n个或更小的聚类数。
如果n是一个向量,T是一个矩阵,且每一个极大值对应矩阵中的一列。
例子
将安德森鸢尾花卉数据集与物种种类相比较
load fisheriris
d = pdist(meas);
Z = linkage(d);
c = cluster(Z,‘maxclust‘,3:5);
crosstab(c(:,1),species)
ans =
0 0 2
0 50 48
50 0 0
crosstab(c(:,2),species)
ans =
0 0 1
0 50 47
0 0 2
50 0 0
crosstab(c(:,3),species)
ans =
0 4 0
0 46 47
0 0 1
0 0 2
50 0 0
clusterdata
数据的凝聚聚类
语法
T = clusterdata(X,cutoff)
T = clusterdata(X,Name,Value)
描述
T = clusterdata(X,cutoff)
T = clusterdata(X,Name,Value)有着一个或多个名称,值参数对另外特殊选项设置的聚类。
输入参数
X | 行数大于等于2的矩阵。每一行代表一个观测值,每一列代表一个类别或维度。 |
cuttoff | 当0<cutoff<2时,clusterdata形成聚类,使得所有的inconsistent值都大于cutoff。当cutoff是一个大于等于2的整数时,clusterdata将cutoff理解成一个由linkage生成的聚类的,使切割能保留在聚类树中的最大值。 |
名称-数值 参数对
指定以逗号分隔的名称,值可选参数对。Name是参数的名称,并且Value是相应的取值。Name外必须加引号(‘‘)。你可以以任意顺序指定一些名称值参数对如Name1,Value1,...,NameN,ValueN。
输入参数
‘criterion‘ | ‘inconsistent‘或‘distance‘ | ||||||||||||||||||||||||
‘cutoff‘ | inconsistent或距离度量的截断值是一个正的标量。当0<cutoff<2时,clusterdata形成聚类,使得所有的inconsistent值都大于cutoff。当cutoff是一个大于等于2的整数时,clusterdata将cutoff理解成一个由linkage生成的聚类的,使切割能保留在聚类树中的最大值。 | ||||||||||||||||||||||||
‘depth‘ | 深度用于计算inconsistent值,是一个正的整数。 | ||||||||||||||||||||||||
‘distance‘ |
任何pdist认可的距离度量名称(‘minkowski‘选项后跟着指数值p):
|
||||||||||||||||||||||||
‘linkage‘ |
linkage函数允许的任何linkage方法: ‘average‘ ‘centroid‘ ‘complete‘ ‘median‘ ‘single‘ ‘ward‘ ‘weighted‘ |
||||||||||||||||||||||||
‘maxclust‘ | 最大聚类数目,为正整数。 | ||||||||||||||||||||||||
‘savememory‘ |
一个字符串,为‘on‘或‘off‘。当可用的时,‘on‘设置使得cluserdata能不计算距离矩阵构造聚类。savememory当如下情况可用: linkage是‘centroid‘,‘median‘或‘ward‘ distance是‘euclidean‘(默认) 当savememory是‘on‘时,linkage运行时间和维度的数目(X的列数)成比例。当savememory是‘off‘时,linkage内存的需求和N2成比例,其中N是观测值的数目。所有选择最好(耗时最少)的savememory设置取决于问题的维度,观测值的个数,或可用的内存。默认的savememory设置是最优设置的一个粗略近似。 默认:为‘on‘当X的列数少于或等于20,或计算机没有足够内存来存储距离矩阵时;反之则为‘off‘。 |