我想知道是否可以在Python上使用不同的样本大小进行层次聚类?更确切地说,使用Ward的最小方差法。
例如,我有5个不同长度的整数列表,A,B,C,D,E。我想要做的是根据Ward的方法将这5个列表分组为3组(合并的集群的方差减少)。
有谁知道怎么做?
答案 0 :(得分:0)
我们可以认为这5个列表是您要在3组中聚类的样本。 您可能知道的分层聚类可以作为输入距离矩阵。 距离矩阵评估样本之间的某种成对距离(或不相似性)。
您必须通过选择有意义的距离函数来构建此5x5矩阵。这在很大程度上取决于您的样本/整数代表什么。由于您的样本不具有恒定长度,因此您无法计算欧几里德距离等指标。
例如,如果列表中的整数可以解释为类,则可以计算Jaccard Index以表示某种不同。
[1 2 3 4 5]和[1 3 4]的Jaccard相似性指数为3/5(或 相差2/5)。
0完全不同,1完全相同。
https://en.wikipedia.org/wiki/Jaccard_index
一旦计算了相似度矩阵(实际上它只代表5选择2 = 10个不同的值,因为此矩阵是对称的),您可以对其应用层次聚类。
重要的部分是找到适合您问题的距离函数。