我无法获得elki返回的每个集群中的点数。
ArrayList<Clustering<?>> cs = ResultUtil.filterResults(result,
Clustering.class);
for (Clustering<?> c : cs) {
int i = 0;
System.out.println("clusters: " + c.getAllClusters().size());
for (de.lmu.ifi.dbs.elki.data.Cluster<?> cluster : c
.getAllClusters()) {
System.out.println("\nclusters : " + cluster.getNameAutomatic()
+ " , IsNoise:" + cluster.isNoise() + ", Size:"
+ cluster.size());
产出如下:
clusters: 4
clusters : Cluster , IsNoise:false, Size:240
clusters : Cluster , IsNoise:false, Size:374
clusters : Cluster , IsNoise:false, Size:4901
clusters : Noise , IsNoise:true, Size:211
我经历过这个Running DBSCAN in ELKI!尽管如此,我还是无法看到星系团中的点。我想把它存储在阵列里。elki存储的集群的结构是什么??我被卡住了!
发布于 2014-05-28 08:40:25
使用cluster.getDBIDs()
获取集群成员。
要获取原始数据,请从您分析的原始Relation
中检索对象。
for (DBIDIter iter = cluster.getIDs().iter(); iter.valid(); iter.advance()) {
DoubleVector obj = relation.get(iter);
注意,ELKI允许对数据进行抽象分析--例如,当使用距离矩阵时。在这种情况下,您可能没有DoubleVector
关系,但只有对象ID。这就是为什么集群不包含向量的原因。它们由一个DBIDs
集合组成,在某些情况下还包括一个集群模型,例如一个质心向量。
https://stackoverflow.com/questions/23904018
复制相似问题