教你3分钟掌握Matlab中关于模糊聚类分析的函数,轻松进行数据分析

接上上篇文章:数据分析模型(二):模糊聚类分析方法及实例(附完整代码)

主要对代码里面的用到的主要函数进行详细讲解,同时也会对利用MATLAB对数据分析有质的飞跃!!!欢迎关注学习!!!

Matlab中关于模糊聚类分析的函数

  • 1)pdist 计算两两对象间的欧氏距离
  • 2)linkage 使用最短距离算法生成具层次结构的聚类树
  • 3)cluster 从连接输出(linkage)中创建聚类
  • 4)zsore(X) 对数据矩阵进行标准化处理
  • 5)H=dendrogram(Z,P) 画聚类树状图
  • 6)T=clusterdata(X,cutoff) 将矩阵X的数据分类
  • 7) squareform 将pdist的输出转换为方阵
  • 8)cophenet 计算相干系数

1)pdist 计算两两对象间的欧氏距离

Y=pdist(X)计算 m × n 矩阵X(看作 m 个 n 维行向量)中两两对象间的欧氏距离。对于有 m 个对象组成的数据集,共有(m-1)⋅ m/2个两两对象组合。

输出Y是包含距离信息的长度为 (m-1)⋅ m/2的向量。可用squareform函数将此向量转换为方阵,这样可使矩阵中的元素(i,j)对应原始数据集中对象i和j间的距离。

Y=pdist(X,’metric’)中用’metric’指定的方法计算矩阵X中对象间的距离。’metric’可取表1中特征字符串值。

表 1’metric’取值及含义

字符串 含 义
’Euclid’ 欧氏距离(缺省)
’SEuclid’ 标准欧氏距离
’Mahal’ 马氏距离(Mahalanobis距离)
’CityBlock’ 绝对值距离
’Minkowski’ 闵氏距离(Minkowski距离)

Y=pdist(X,’minkowski’,p)用闵氏距离计算矩阵X中对象间的距离。p为闵氏距离计算用到的指数值,缺省为2。

2)linkage 使用最短距离算法生成具层次结构的聚类树

Z=linkage(Y)使用最短距离算法生成具层次结构的聚类树。输入矩阵Y为pdist函数输出的 (m-1)⋅ m/2维距离行向量。

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

表2 ’method’取值及含义

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

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

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

3)cluster 从连接输出(linkage)中创建聚类

T=cluster(Z,cutoff)从连接输出(linkage)中创建聚类。cutoff为定义cluster
函数如何生成聚类的阈值,其不同的值含义如表3所示。

表3 cutoff取值及含义

cutoff取值 含 义
0 cutoff作为不一致系数的阈值。不一致系数对聚类树中对象间的差异进行了量化。如果一个连接的不一致系数大于阈值,则cluster函数将其作为聚类分组的边界
2<=cutoff cutoff作为包含在聚类树中的最大分类数

T=cluster(Z,cutoff,depth,flag)从连接输出(linkage)中创建聚类。参数depth
指定了聚类数中的层数,进行不一致系数计算时要用到。不一致系数将聚类树中两对象的连接与相邻的连接进行比较。详细说明见函数inconsistent。当参数depth被指定时,cutoff通常作为不一致系数阈值。

参数flag重载参数cutoff的缺省含义。如flag为’inconsistent’,则cutoff作为
不一致系数的阈值。如flag为’cluster’,则cutoff作为分类的最大数目。

输出T为大小为 m 的向量,它用数字对每个对象所属的类进行标识。为了找到包含在类i中的来自原始数据集的对象,可用find(T==i)。

4)zsore(X) 对数据矩阵进行标准化处理

对数据矩阵进行标准化处理,处理方式为
教你3分钟掌握Matlab中关于模糊聚类分析的函数,轻松进行数据分析_第1张图片

5)H=dendrogram(Z,P) 画聚类树状图

由linkage产生的数据矩阵Z画聚类树状图。P是结点数,默认值是30。

6)T=clusterdata(X,cutoff) 将矩阵X的数据分类

将矩阵X的数据分类。X为 m×n 矩阵,被看作 m 个 n 维行向量。它与以下几个命令
等价:

Y=pdist(X,’euclid’)
Z=linkage(Y,’single’)
T=cluster(Z,cutoff)

7) squareform 将pdist的输出转换为方阵

将pdist的输出转换为方阵。

8)cophenet 计算相干系数

c=cophenet(Z,Y) 计算相干系数,它是将Z中的距离信息(由linkage()函数产生)和Y中的距离信息(由pdist()函数产生)进行比较。Z为 (m-1) × 3 矩阵,距离信息包含在第三列。Y是(m-1) ⋅m/2 维的行向量。

你可能感兴趣的:(数学建模,Matlab,聚类,matlab)