【问题标题】:Subspace clustering using CLIQUE in ELKI在 ELKI 中使用 CLIQUE 进行子空间聚类
【发布时间】:2015-07-15 16:08:17
【问题描述】:

我正在尝试从高维数据集中检测密集子空间。为此,我想使用 ELKI 库。但是ELKI库的文档和例子很少。

我尝试了以下-

    Database db=makeSimpleDatabase("D:/sample.csv", 600);

    ListParameterization params = new ListParameterization();
    params.addParameter(CLIQUE.TAU_ID, "0.1");
    params.addParameter(CLIQUE.XSI_ID, 20);

    // setup algorithm
    CLIQUE<DoubleVector> clique = ClassGenericsUtil.parameterizeOrAbort(CLIQUE.class, params);

    // run CLIQUE on database
    Clustering<SubspaceModel<DoubleVector>> result = clique.run(db);

    for(Cluster<?> cl : result.getToplevelClusters()) {
        System.out.println(cl.getIDs());
    }

我给出了以下输入-

2,2
2,3
5,2
5,3
8,4

结果是-

[2, 1]
[4, 3]
[5]
[3, 1]
[4, 2]
[5]
[1]
[2]
[3]
[4]
[5]

我希望输出为分组到子空间中的输入数据点。 可能是我选择了错误的值或以错误的方式设置了参数。

请帮忙。提前致谢。

【问题讨论】:

  • “没有工作”不是很精确。发生了什么?你期望会发生什么?它在 MiniGUI 中有效吗?我主要使用 MiniGUI。
  • 感谢您的回复,抱歉问题不准确。我已经编辑了问题。
  • 我在使用 CLIQUE 时从未获得过真正好的结果。我认为它只适用于合成数据。此外,它可能仅适用于连续数据、高维数据和更大的数据集。如果我没记错的话,它实际上是基于某些维度是均匀噪声的概念。但我不认为这是一个值得尝试的方法——它真的从来没有在我的数据集上工作过。

标签: java cluster-analysis elki clique


【解决方案1】:

请注意,CLIQUE 会产生重叠簇。

元素可以同时在 0 到多个簇中。如果您选择错误的参数(并且 CLIQUE 参数似乎真的很难选择),您将得到奇怪的结果。在您的情况下,它似乎是 11 个集群,尽管您的数据集只有 5 个元素。

集群告诉你的基本上是:

元素 [2,1] 簇(它们都有 x=2)

元素 [4,3] 簇(它们都有 x=5)

元素 [5] 是一个簇(只有 x=8 的元素)

元素 [3,1] 簇(它们都有 y=2)

元素 [4,2] 簇(它们都有 y=3)

元素 [5] 是一个簇(只有 y=4 的元素)

在 x,y 子空间中,每个元素都是独立的,并且都有自己的集群。

为这个脆弱的算法选择更好的参数。

TAU = 0.1(5 分的 10%):任何超过 0.5 分的东西都是一个集群……换句话说,就是所有东西。这就是你得到这个结果的原因——你要求的。

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2015-12-20
    • 2013-03-07
    • 2013-02-25
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多