MiniBatchKMeans Parameters



我试图用Sklearn的Minibatch K-均值聚集图像贴片,以重现本文的结果。这是我数据集上的一些信息:

  • 400,000行
  • 108尺寸
  • 1600个集群。

我可以在如何设置Minibatch Kmeans的参数方面获得一些指导吗?目前,惯性开始收敛,但随后突然再次上升,然后终止算法:

Minibatch iteration 48/1300:mean batch inertia: 22.392906, ewa inertia: 22.500929 
Minibatch iteration 49/1300:mean batch inertia: 22.552454, ewa inertia: 22.509173 
Minibatch iteration 50/1300:mean batch inertia: 22.582834, ewa inertia: 22.520959 
Minibatch iteration 51/1300:mean batch inertia: 22.448639, ewa inertia: 22.509388 
Minibatch iteration 52/1300:mean batch inertia: 22.576970, ewa inertia: 22.520201 
Minibatch iteration 53/1300:mean batch inertia: 22.489388, ewa inertia: 22.515271 
Minibatch iteration 54/1300:mean batch inertia: 22.465019, ewa inertia: 22.507231 
Minibatch iteration 55/1300:mean batch inertia: 22.434557, ewa inertia: 22.495603 
[MiniBatchKMeans] Reassigning 766 cluster centers.
Minibatch iteration 56/1300:mean batch inertia: 22.513578, ewa inertia: 22.498479 
[MiniBatchKMeans] Reassigning 767 cluster centers.
Minibatch iteration 57/1300:mean batch inertia: 26.445686, ewa inertia: 23.130030 
Minibatch iteration 58/1300:mean batch inertia: 26.419483, ewa inertia: 23.656341 
Minibatch iteration 59/1300:mean batch inertia: 26.599368, ewa inertia: 24.127225 
Minibatch iteration 60/1300:mean batch inertia: 26.479168, ewa inertia: 24.503535 
Minibatch iteration 61/1300:mean batch inertia: 26.249822, ewa inertia: 24.782940 
Minibatch iteration 62/1300:mean batch inertia: 26.456175, ewa inertia: 25.050657 
Minibatch iteration 63/1300:mean batch inertia: 26.320527, ewa inertia: 25.253836 
Minibatch iteration 64/1300:mean batch inertia: 26.336147, ewa inertia: 25.427005 

我生产的图像补丁看起来不像纸张的作者得到什么。我可以关于如何为Minibatchkmeans设置参数以获得更好的结果提供一些指导?这是我当前的参数:

kmeans = MiniBatchKMeans(n_clusters=self.num_centroids, verbose=True, batch_size=self.num_centroids * 20,compute_labels=False,

您看到的行为由reassignment_ratio参数控制。Minibatchkmeans试图避免创建过度不平衡的类。每当最小&最大的簇下降到此低于此的中心,将簇低于阈值的中心被随机重新定义。这就是

揭开的
[MiniBatchKMeans] Reassigning 766 cluster centers.

数字簇越大,即使在良好的群集中,预期的群集大小(因此最小/最大比率)的预期扩散就越大。默认设置为reassignment_ratio=0.01对于1600个集群来说太大了。对于超过1000的群集尺寸,我通常只使用reassignment_ratio=0。在这种情况下,我还没有看到重新分配的改善。

如果您想尝试重新分配,请查看诸如reassignment_ratio=10**-4之类的东西是否比0。请密切注意日志消息。如果超过1或2个集群立即重新分配,则可能应该进一步减少reassignment_ratio。您可能还需要增加max_no_improvement,以确保该算法有足够的时间从重新分配引入的随机化中恢复过来,因为这可能至少使情况变得更糟,即使它从长远来看使您从本地最小值中脱颖而出。增加批处理大小也可能有助于避免某些群集的重新分配触发。

相关内容

  • 没有找到相关文章

最新更新