我正在使用scikit聚类一些数据。
我有最简单的任务:我知道群集的数量。而且,我知道 每个群集的大小。是否可以指定此信息并将其转发给K-means函数?
答案 0 :(得分:3)
没有。您需要某种类型的约束聚类算法来执行此操作,并且没有一个在scikit-learn中实现。 (这不是“最简单的任务”,除了从一个集群到另一个集群的一些启发式样本移动之外,我甚至不知道这样做的原理算法。)
答案 1 :(得分:2)
K-means是方差最小化,您的目标似乎是生成预定义大小的分区,而不是最小方差。
但是,here is a tutorial显示了如何修改k-means以生成相同大小的簇。您可以轻松扩展它以生成所需大小的群集,而不是平均大小。通过这种方式修改k-means相当容易。但结果将比大多数数据集的k-means结果更无意义。 K-means通常和随机凸分区一样好。
答案 2 :(得分:1)
我只能想到暴力算法。如果群集分离得很好,那么您可以尝试使用不同的随机初始化多次运行群集,只提供群集数量作为输入。在每个集群的每个迭代计数大小之后,对其进行排序并与已知集群大小的排序列表进行比较。如果他们不匹配冲洗并重复。