Matlab聚类分析相关函数
(一)pdist
使用方法:Y = pdist(X, ‘metric’)
表示用’metric’指定的方法计算矩阵X中对象间的距离。其中:
- 矩阵X为 m × n m\times n m×n 矩阵,可看作 m m m 个 n n n 维行向量,每一个行向量就是样本点
- 输出的Y是包含距离信息的长度为 m ( m − 1 ) 2 \frac{m(m-1)}{2} 2m(m−1) 的行向量,由于距离的两两组合后的距离,所以由排列组合可知共有 m ( m − 1 ) 2 \frac{m(m-1)}{2} 2m(m−1) 个组合。
下面是’metric’常用字符串值:
字符串 | 含义 |
---|---|
‘euclidean’ | 欧式距离(默认) |
‘seuclidean’ | 标准欧几里得距离 |
‘cityblock’ | 绝对值距离 |
‘minkowski’ | 闵氏距离 |
‘chebychev’ | 切比雪夫距离 |
‘mahalanobis’ | 马氏距离 |
注意:使用闵氏距离时,Y = pdist(X, ‘minkowski’, p),其中p为闵氏距离计算需要用到的指数值,默认为2.
(二)linkage
使用方法:Z = linkage(Y, ‘method’)
表示使用由’method’指定的算法计算生成聚类树,其中:
- Y为pdist函数输出的 m ( m − 1 ) 2 \frac{m(m-1)}{2} 2m(m−1) 维距离行向量
- Z为包含聚类树信息的 ( m − 1 ) × 3 (m-1)\times3 (m−1)×3 矩阵。每一行表示一个类(样本)和另一个类(样本)的合并,所以相当于每一个样本都要合并一次,而第一次合并是两个样本进行的,所以总共有 m − 1 m-1 m−1 行。
- 第一二列表示两个合并类(样本),其中: 1 ∼ m 1\thicksim m 1∼m 表示初始样本;超过 m m m 的是由样本组成的类,记作 m + j m+j m+j ,其中 m m m 为样本总数, j j j 表示该类是在第 j j j 行新形成的。
- 第三列表示对应两个类(样本)间的距离。
下面是’method’常用的字符串:
字符串 | 含义 |
---|---|
‘single’ | 最短距离(默认) |
‘average’ | 无权平均距离 |
‘centroid’ | 重心距离 |
‘complete’ | 最大距离 |
‘median’ | 赋权重心距离 |
‘ward’ | 离差平方和方法 |
‘weighted’ | 赋权平均距离 |
(三)cluster
使用方法:T = cluster(Z, ‘cutoff’, c)
表示将由linkage产生的信息矩阵Z分成c类,其中:
- Z为linkage函数生成的 ( m − 1 ) × 3 (m-1)\times3 (m−1)×3 矩阵
- c 表示分成类的数量
- T为长度为 m m m 的列向量,其中每行对应着X中的行(样本),T中数字相同的为同一类
(四)dendrogram
使用方法(常用):
- H = dendrogram(Z, P)
- H = dendrogram(Z, P, ‘ColorThreshold’, cutoff)
表示画出由linkage产生的信息矩阵Z对应的聚类树状图。其中:
- Z为linkage函数生成的 ( m − 1 ) × 3 (m-1)\times3 (m−1)×3 矩阵
- P为树状图显示的最大基础类数量(结点数量),默认值为30,0表示全部画出
- ‘ColorThreshold’ 表示不同类显示不同颜色
- cutoff与’ColorThreshold’ 配合使用,表示不同颜色类的最小距离
举例
(一)
clc, clear; % 清除页面和工作区
a = [1,0;1,1;3,2;4,3;2,5]; % 5组样本
Y = pdist(a); % 计算两两样本之间的欧式距离
Z = linkage(Y); % 使用最短距离算法生成具有层次结构的聚类树
T = cluster(Z,3); % 将聚类树分成3类
H = dendrogram(Z,0); % 将聚类树Z全部画出
得到下聚类图:
(二)
clc, clear; % 清除页面和工作区
a = [1,0;1,1;3,2;4,3;2,5]; % 5组样本
Y = pdist(a); % 计算两两样本之间的欧式距离
Z = linkage(Y); % 使用最短距离算法生成具有层次结构的聚类树
T = cluster(Z,3); % 将聚类树分成3类
cutoff = median([Z(end-2,3) Z(end-1,3)]); % 让其最小距离在倒数第二三行中,其取倒数第二行,即分成三类
H = dendrogram(Z,0,'ColorThreshold',cutoff);% 将Z带不同颜色画出
得到下聚类图:
参考资料:
[1] 司守奎, 孙兆亮. 数学建模算法与应用[M].北京:国防工业出版社,2020:2.
今天的文章Matlab聚类分析相关函数分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32473.html