# cophenet
共相关系数
函数库: TyMachineLearning
# 语法
c, d = cophenet(Z, X)
# 说明
c, d = cophenet(Z, X)返回由Z表示的分层聚类树的共相关系数,其中Z是linkage函数的输出,X为输入的m×n数据集。Z是大小为(m-1)×4的矩阵,距离信息位于第三列。
一个聚类树的共性分类相关性是指由聚类树得到的共性分类距离与构造树时的原始距离(相异性)之间的线性相关系数,因此它是对聚类树在多大程度上代表了样本之间相异性的度量,这是一种衡量树表示观察结果之间的差异好坏的方法。
输出值c是共线性相关系数。对于一个好的聚类效果,该值的大小应非常接近1。该度量可用于比较使用不同算法以获得最佳解决方案。
# 示例
计算共相关系数
加载数据集。
using TyMachineLearning
using CSV
using DataFrames
file = joinpath(pkgdir(TyMachineLearning), "data/Cluster/cophenet.csv")
X = CSV.read(file, DataFrame; header=false)
选择单连接方式得到层次聚类树的连接信息Z。
Z = linkage(X, "single")
29×4 Matrix{Float64}:
11.0 15.0 0.112035 2.0
3.0 6.0 0.153029 2.0
4.0 9.0 0.156321 2.0
12.0 16.0 0.208209 2.0
10.0 19.0 0.211691 2.0
23.0 27.0 0.225217 2.0
22.0 35.0 0.259209 3.0
0.0 32.0 0.265962 3.0
8.0 31.0 0.293208 3.0
14.0 34.0 0.308767 3.0
21.0 36.0 0.313159 4.0
13.0 30.0 0.324446 3.0
18.0 39.0 0.327934 4.0
⋮
43.0 45.0 0.408548 6.0
20.0 46.0 0.412234 6.0
33.0 41.0 0.459277 5.0
29.0 48.0 0.460503 7.0
24.0 50.0 0.498041 8.0
44.0 49.0 0.50471 10.0
26.0 51.0 0.512055 9.0
28.0 53.0 0.534746 10.0
37.0 47.0 0.563573 9.0
5.0 55.0 0.668397 10.0
52.0 54.0 0.888069 20.0
56.0 57.0 1.1204 30.0
计算共相关系数。
c, d = cophenet(Z, X)
(0.7997352297778085, [0.5635726442083576, 0.5635726442083576, 0.5635726442083576, 0.2659623260914974, 0.6683969361726608, 0.5635726442083576, 0.5635726442083576, 0.5635726442083576, 0.2659623260914974, 1.1203957758756502 … 0.5120546162276055, 0.4045998022738024, 0.5347455937172365, 0.4605027470059216, 0.5120546162276055, 0.5347455937172365, 0.5120546162276055, 0.5347455937172365, 0.4605027470059216, 0.5347455937172365])
取出共相关系数c.
c
0.7997352297778085
# 输入参数
Z - 层次聚类树的连接信息
数值矩阵
linkage函数的输出,大小为(m-1)×4。
数据类型: Matrix
X - 样本数据
DataFrame
计算共相关系数的样本数据集,大小为m×n。
数据类型: DataFrame
# 输出参数
c - 共相关系数
数值
是对聚类树在多大程度上代表了样本之间相异性的度量。
数据类型: Float
d - 共相关系数向量
数值向量
代表每个样本之间相异性的度量。
数据类型: Vector
# 另请参阅
cluster | dendrogram | inconsistent | kmeans | linkage | squareform