我想对以下数据(样本)进行聚类分析:
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 均值或层次聚类最适合对此类数据(大约一百万个不同的 id)的代码进行聚类,以及使用哪种距离度量?如果这两种方法都不合适,您认为哪种方法最合适?
谢谢
不,k-means 对二进制数据没有多大意义。
因为 k-means 计算均值。但是二进制数据的平均向量是多少?
您的集群“中心”将不是您数据空间的一部分,与您的输入数据完全不同。当它与您的对象完全不同时,这对我来说似乎不是一个合适的“中心”。
最有可能的是,你的集群“中心”最终会比实际的集群成员更相似,因为它们位于中心的某个地方,而你的所有数据都在角落。
认真地研究一下数据类型的相似度函数。然后选择适用于该距离函数的聚类算法。层次聚类非常普遍,但速度非常慢。但是您不必使用 40 年前的算法,您可能需要研究更现代的东西。
我是一名优秀的程序员,十分优秀!