gpt4 book ai didi

java - 在 ELKI 中使用 CLIQUE 进行子空间聚类

转载 作者:行者123 更新时间:2023-12-02 04:42:12 24 4
gpt4 key购买 nike

我正在尝试从高维数据集中检测密集子空间。为此我想使用 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]

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

请帮忙。提前致谢。

最佳答案

请注意,CLIQUE 会产生重叠集群。

元素可以同时位于 0 到多个簇中。如果你的参数选择不当(CLIQUE 参数似乎很难选择),你会得到奇怪的结果。在您的例子中,尽管您的数据集只有 5 个元素,但它似乎有 11 个簇。

聚类告诉您的本质是:

元素 [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 分的东西都是一个簇……换句话说,就是所有东西。这就是为什么你得到这个结果 - 你要求它。

关于java - 在 ELKI 中使用 CLIQUE 进行子空间聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com