测量集群内的差异-Kmodes

时间:2018-09-26 08:12:16

标签: python cluster-analysis categorical-data

我正在使用分类数据进行聚类。我遇到了Kmodes算法,发现它非常适合我的要求。现在,我想针对所有群集测量群集内的差异。我正在考虑使用群集来衡量差异,并尽可能减少它。有什么办法吗? 另外,是否有任何方法可以检查我的数据集群的效率? 由于我的数据是分类数据,因此将距离视为指标的方法可能无济于事。

1 个答案:

答案 0 :(得分:0)

要测量集群中的差异,您需要提出某种度量标准。对于分类数据,计算不相似度的可能方法之一可能是:

d(i, j) = (p - m) / p

其中:

  • p是数据中类别/类别的数量
  • m是样本ij之间的匹配数

例如,如果您的数据具有3个分类特征,并且样本ij如下:

    Feature1  Feature2  Feature3
i    x          y          z
j    x          w          z

因此,在这里,我们具有3个分类特征,因此p=3和这三个特征中,两个特征对于样本ij具有相同的值,因此m=2 。因此

d(i,j) = (3 - 2) / 3
d(i,j) = 0.33

另一种替代方法是将分类变量转换为单热编码特征,然后计算jaccard simmilarity

因此,为了衡量集群中的差异,您可以计算集群中每个对象之间的成对差异,然后取其平均值。

基于这些度量,您还可以使用silhoutte score来评估聚类的质量(但是您需要带着一粒盐来接受,有时评分会很好,而聚类可能不是您所期望的)。