聚类二进制数据

时间:2013-07-27 12:07:32

标签: python binary cluster-analysis k-means hierarchical

我想对以下数据(样本)执行聚类分析:

    ID     CODE1     CODE2     CODE3     CODE4      CODE5      CODE6
   ------------------------------------------------------------------
   00001     0         1         1         0          0          0
   00002     1         0         0         0          1          1
   00003     0         1         0         1          1          1
   00004     1         1         1         0          1          0
    ...

其中1表示存在该人的代码,0表示缺席。 k-means或层次聚类最适合聚类这类数据的代码(大约一百万个不同的ID),以及用哪个距离测量?如果这两种方法都不合适,您认为最合适的是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

不,k-means对二进制数据没有多大意义。

因为k-means计算意味着。但是二进制数据的平均向量是什么?

您的群集“中心”不属于您的数据空间,也不属于您的输入数据。这对我来说似乎不是一个合适的“中心”,当它与你的物体完全不同时。

最有可能的是,您的群集“中心”最终会变得彼此更加相似,而不是实际的群集成员,因为它们位于中心的某个位置,而您的所有数据都位于角落。

说真的,研究数据类型的相似度函数。然后选择适用于此距离函数的聚类算法。分层聚类非常通用,但速度很慢。但是你不必使用40岁的算法,你可能想要研究更现代的东西。