SciPy - cophenet() 方法
SciPy cophenet() 方法计算层次聚类中每个观测值之间的共表象距离。这些聚类使用链接定义,链接显示了聚类的分裂。
共表象距离计算两点之间的距离,以树状图表示。树状图显示了对象之间的层次关系。
语法
以下是 SciPy cophenet() 方法的语法 −
cophenet(Z, pdist(data))
参数
此方法接受两个参数 −
- Z:此参数存储 linkage() 方法。
- pdist(data):用于定义数据的成对分布。
返回值
此方法返回浮点值作为结果。
示例1
以下是说明 SciPy cophenet() 方法用法的基本程序。
import numpy as np from scipy.cluster.hierarchy import linkage, cophenet from scipy.spatial.distance import pdist # 给定二维点的数据 data = np.array([[10, 20], [20, 30], [30, 40], [50, 60], [80, 90]]) # 层次聚类 Z = linkage(data, method='single') # 共表型相关系数 c, d = cophenet(Z, pdist(data)) print(f"共表型相关系数的值:{c}")
输出
上述代码产生以下输出 −
共表型相关系数:0.8355044182110838
示例 2
此程序显示共表型相关系数的值使用完整链接方法。
import numpy as np from scipy.cluster.hierarchy import linkage, cophenet from scipy.spatial.distance import pdist # 给定 2d 点的数据 data = np.array([[10, 20], [20, 30], [30, 40], [50, 60], [80, 90]]) # 使用"完整"链接方法执行层次聚类 Z_complete = linkage(data, method='complete') # 共表型相关系数 c_complete, d_complete = cophenet(Z_complete, pdist(data)) print(f"共表型相关系数的值(使用完整方法):{c_complete}")
输出
上述代码产生以下输出 −
共表型相关系数的值(使用完整方法):0.7173095078886984
示例 3
下面的程序说明了使用平均链接方法得到的共表型相关系数的值。
import numpy as np from scipy.cluster.hierarchy import linkage, cophenet from scipy.spatial.distance import pdist # 给定二维点的数据 data = np.array([[11, 22], [22, 33], [33, 44], [55, 66], [88, 99]]) # 给定五维点的数据 data_high_dim = np.random.rand(10, 5) # 层次聚类 Z_high_dim = linkage(data_high_dim, method='average') # 共表型相关系数 c_high_dim, d_high_dim = cophenet(Z_high_dim, pdist(data_high_dim)) print(f"共表型相关系数的值(高维):{c_high_dim}")
输出
上述代码产生以下输出 −
共表型相关系数的值(高维):0.6727006277242108