为什么Weka XMeans系统地低估了集群的数量?

时间:2016-02-22 14:21:39

标签: cluster-analysis weka k-means xmeans

我在使用Weka的XMeans群集器时遇到了一些麻烦。我和其他几个人交谈过,我们都同意下面的截图中有六个集群,如果你真的很难眯眼,至少要有两个集群。无论哪种方式,xMeans似乎都不同意。

six clusters, one center point

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)只找到了一个群集。只有将最小集群数量设为5才能实际看到六个集群。将改进结构参数提升到(达到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按预期运行?

1 个答案:

答案 0 :(得分:4)

我认为这是我害怕的。一个心理问题(我想如果你搜索Gestalttheorie,你可能会在感知方面找到一些解释)。

人眼正在抓住星团的形状并找到六个圆圈。但是,k-means和x-means仅查看距离。因此,集群看起来很尴尬。在使用6-means进行多次重启之后,我几乎总能实现如下集群: enter image description here 这可能是一个可能由xmeans解决的局部最小值

或3-means

enter image description here

这很有意思,因为有些观点明显违背了期望。

如果在R中使用K-Means,则可以分析聚类结果的内部。这些表明这些看起来很笨拙的群集通常表现得非常好。因此,对于预期的不同结果没有收敛。

我认为这可以通过使用不同的距离测量来解决。例如,平方欧几里德距离强制形状的圆形。 或者使用一些基于内核的聚类技术和RBF内核

===============================================

<强> EDIT1: 然而,weka结果的一个方面仍然相当尴尬,我使用RWeka进行了一些实验。基本上,我为27之间的每个初始群集大小运行了100次群集运行。我的期望是,对于26,群集对于我希望它们增长的其他群集大小相当稳定。

然而,结果却不同 enter image description here

所以基本上26相当稳定,但群集大小总是最多花费1倍。

让我们来看看BIC

enter image description here

我们可以观察到,当增加簇大小时BIC没有增加,但是,强烈依赖于初始簇大小。

让我们进一步深入研究并查看初始簇大小3.运行具有不同初始大小的多次重启会生成(可重现)以下两种情况: enter image description here enter image description here

然而,BIC的结果似乎表明BIC计算中存在BUG。