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) 对数据矩阵进行标准化处理
对数据矩阵进行标准化处理,处理方式为

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 维的行向量。
资源传送门
- 关注【做一个柔情的程序猿】公众号
- 在【做一个柔情的程序猿】公众号后台回复 【python资料】【2020秋招】 即可获取相应的惊喜哦!
「❤️ 感谢大家」
- 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
- 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
- 教你如何用python轻轻松松操作Excel、Word、CSV,一文就够了,赶紧码住!!!
- 程序员一般喜欢浏览的40个网站,屯了这么多年,我就不藏私了,个人强烈推荐
- 基于混沌Logistic加密算法的图片加密与还原
- 教你用python编写二十几行的代码绘制动态烟花
- python错误:AttributeError: ‘module‘ object has no attribute ‘xxxxx‘,10种总结(成功解决)
- 教你如何用python轻轻松松解析XML和PDF,一文就够了,赶紧码住!!!
- python之详细图像仿射变换讲解(图像平移、旋转、缩放、翻转),一文就够了,赶紧码住
- python调用cv2时成功解决问题:ValueError: not enough values to unpack (expected 3, got 2)
- Python实现树莓派摄像头持续录像并传送到主机
- python之图像仿射变换实战-提取手写数字图片样本
- 教你用Python如何玩转声音文件,将声音按照语音间隙切割为片段
- Python实现对图像进行掩膜遮罩处理,超详细讲解!!!
- QT实现客服端和服务器之间消息和文件交互
- ❤️QT实现客服端和服务器之间文件交互❤️
- ❤️国粹——中国象棋震撼来袭,python的赶紧上车❤️