我在使用 Weka 的 XMeans 集群时遇到了一些问题。我已经和其他几个人谈过,我们都同意下面的屏幕截图中有六个集群,或者如果你真的眯着眼睛,至少至少有两个。无论哪种方式,xMeans 似乎都不同意。
XMeans 似乎系统地低估了集群的数量,基于我设置的最小集群计数。将最大集群数保持在 100,以下是我得到的结果:
-L 1 // 1 cluster
-L 2 // 2 clusters
-L 3 // 3 clusters
-L 4 // 5 clusters
-L 5 // 6 clusters
-L 6 // 6 clusters
最令人震惊的是,-L 1
(和-H 100
)只有一个集群被发现。只有将最小集群数设为五个,我才能真正看到六个集群。将改进结构参数提高到 100,000 似乎没有任何效果。(我也玩过其他选项,没有发现任何区别。)以下是生成上述屏幕截图的选项,它找到了一个中心:
private static final String[] XMEANS_OPTIONS = {
"-H", "100", // max number of clusters (default 4)
"-L", "1", // min number of clusters (default 2)
"-I", "100", // max overall iterations (default 1)
"-M", "1000000", // max improve-structure iterations (default 1000)
"-J", "1000000", // max improve-parameter iterations (default 1000)
};
显然我在这里遗漏了一些东西。如何使 XMeans 的行为符合预期?