我想知道是否可以在 Python 上使用不同的样本大小进行层次聚类?更准确地说,使用 Ward 的最小方差法。
例如,我有 5 个不同长度的整数列表 A、B、C、D、E。我想要做的是根据 Ward 的方法将这 5 个列表分为 3 个组(被合并的集群的方差减少)。
有谁知道该怎么做?
我想知道是否可以在 Python 上使用不同的样本大小进行层次聚类?更准确地说,使用 Ward 的最小方差法。
例如,我有 5 个不同长度的整数列表 A、B、C、D、E。我想要做的是根据 Ward 的方法将这 5 个列表分为 3 个组(被合并的集群的方差减少)。
有谁知道该怎么做?
我们可以认为这 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 个不同的值,因为该矩阵是对称的),您就可以对其应用层次聚类。
重要的部分是找到适合您问题的距离函数。