在 ELKI 中使用 CLIQUE 进行子空间聚类
Subspace clustering using CLIQUE in ELKI
我正在尝试从高维数据集中检测密集子空间。为此,我想使用 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 参数似乎真的很难选择),您会得到奇怪的结果。在你的例子中,它似乎是 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 分的东西都是一个簇……换句话说,所有东西。这就是为什么你得到这个结果 - 你要求它。
我正在尝试从高维数据集中检测密集子空间。为此,我想使用 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 参数似乎真的很难选择),您会得到奇怪的结果。在你的例子中,它似乎是 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 分的东西都是一个簇……换句话说,所有东西。这就是为什么你得到这个结果 - 你要求它。