我正在尝试聚类(AgglomerativeCluster,kMeans)以下类型的非常大的数据集:
[0, 0, 0, 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5]
即重复多次的整数样本。
简而言之,我想通过将样本转换为更短的计数列表来预处理样本:
[(0, 4), (1, 1), (2, 4), (3, 1), (4 , 3), (5, 9)]
然后将其用作聚类的输入。
问:你知道如何使用这样的计数列表作为聚类的输入吗?
我这样做的主要动机是当输入数组的长度超过 50000 时,sklearn.cluster.KMeans 或 sklearn.cluster.AgglomerativeClustering 都会引发异常。我的数据集的长度为数百万。
我已经启动并运行了一个数据压缩阶段,我在其中:
- 种类
- 以相同大小的块分组
- 计算每个块的平均值
然后继续使用平均值列表作为聚类的输入。这行得通。但是,生成的集群显示出对块大小的依赖性,我发现这种选择很难辩护。
我还尝试使用每个值的频率作为权重,这是 sklearn.cluster.KMeans 似乎允许的。但是,我真的在这里猜测这些权重是用来做什么的。
谢谢