1

我在使用 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 的行为符合预期?

4

1 回答 1

4

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

人眼正在抓住星团的形状,发现六个圆圈。然而,k-means 和 x-means 只关注距离。因此,集群看起来相当尴尬。同样在使用 6-means 多次重新启动后,我几乎总是实现了类似的集群: 在此处输入图像描述 这可能是一个局部最小值,可以通过 xmeans 解决

或 3 均值

在此处输入图像描述

这很有趣,因为有些观点明显违反了预期。

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

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

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

EDIT1: 但是,weka 的结果的一个方面仍然比较尴尬,我使用 RWeka 进行了一些实验。2基本上,我确实为和之间的每个初始集群大小运行了 100 次集群运行7。我的期望是,对于其他集群大小,我预计它们会增长,2并且集群相当稳定。6

然而结果却大相径庭 在此处输入图像描述

所以基本上2并且6相当稳定,但是,集群大小总是最多增加 1。

让我们看看 BIC

在此处输入图像描述

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

让我们再深入一点,看看初始集群大小为 3。以不同的初始大小运行多次重启会产生(可重现)以下两种情况: 在此处输入图像描述 在此处输入图像描述

尽管如此,BIC 上的结果似乎表明 BIC 计算中存在 BUG。

于 2016-02-24T18:25:56.877 回答