我想对以下数据(示例)执行聚类分析:
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),以及使用哪个距离度量?如果这两种方法都不合适,你认为哪种方法最合适?
感谢
不,k-means对二进制数据没有多大意义。
因为k-means计算意味着。但是二进制数据的平均矢量是多少?
您的集群"中心"将不是您的数据空间的一部分,与您的输入数据完全不同。对我来说,当它与你的对象完全不同时,这似乎不是一个合适的"中心"。
最有可能的是,您的集群"中心"最终会比实际的集群成员更相似,因为它们位于中心的某个位置,而您的所有数据都在角落里。
说真的,调查一下你的数据类型的相似性函数。然后选择一个适用于该距离函数的聚类算法。层次聚类是相当普遍的,但确实很慢。但你不必使用40年前的算法,你可能想研究更现代的东西。