我有两个由实值向量定义的数据集,并且我对它们都进行了聚类。现在我想比较这些类,看看它们是如何相互映射的。如果我将数据集放在一个更大的数据集和集群中,我会看到大多数,比如说,第一个数据集的第 1 类和第二个数据集的第 2 类(数字是任意的)属于同一类总聚类,这是有道理的,这意味着它们可能是等价的。什么是执行这种分析并给出这种重叠的定量测量的严格方法?谢谢。
如何比较在两个不同数据集上执行的聚类中的类?
数据挖掘
聚类
计分
2021-09-30 19:29:04
2个回答
我建议使用Kullback-Leibler 散度(KLD) 来比较这些类。程序如下:
1-找到每个数据集的每个类的平均向量和协方差矩阵。
2-计算第一个数据集的每个类与第二个数据集的所有类之间的KLD。因此,例如,如果您有两个数据集,每个数据集有 5 个类,您应该计算 KLD,25 次。
3- 对于第一个数据集的每个类,从第二个数据集中找到它们之间 KLD 最低的类。这样做,你会发现两个数据集最相似的类。
请注意,KLD 测量两个概率分布之间的相似性,并且通过计算每个类的平均向量和协方差矩阵,您正在拟合正态分布。要找到两个多元正态分布之间的 KLD 计算公式,请参阅此处:
https://en.m.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
可以使用通常的集群评估措施,这将最容易传达给审阅者和集群专家。
您只需将完整标签限制为仅数据的一部分,然后在两个结果上比较已建立的度量,例如调整后的兰德指数 (ARI) 或标准化互信息 (NMI)(这些度量是对称的,因此哪个无关紧要标签来自完整数据聚类,哪些来自子集聚类。
其它你可能感兴趣的问题