Skip to main content
 首页 » 编程设计

python之聚类二进制数据

2025年05月04日13sxdcgaq8080

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

    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 年前的算法,您可能需要研究更现代的东西。