我想对以下数据(样本)执行聚类分析:
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),以及用哪个距离测量?如果这两种方法都不合适,您认为最合适的是什么?
谢谢
答案 0 :(得分:1)
不,k-means对二进制数据没有多大意义。
因为k-means计算意味着。但是二进制数据的平均向量是什么?
您的群集“中心”不属于您的数据空间,也不属于您的输入数据。这对我来说似乎不是一个合适的“中心”,当它与你的物体完全不同时。
最有可能的是,您的群集“中心”最终会变得彼此更加相似,而不是实际的群集成员,因为它们位于中心的某个位置,而您的所有数据都位于角落。
说真的,研究数据类型的相似度函数。然后选择适用于此距离函数的聚类算法。分层聚类非常通用,但速度很慢。但是你不必使用40岁的算法,你可能想要研究更现代的东西。