在运行模型时显示ELKI DBSCAN集群模型的进度?

时间:2019-01-08 12:23:07

标签: java cluster-analysis elki

我正在使用ELKI的DBSCAN实现对具有各种大小(范围从数百万个到数千个观测值)的不同数据集进行聚类,并且由于运行该算法时不同数据集可能花费很长时间,所以我想知道是否以某种方式有可能显示算法的进度(或好的估计)吗?

我尝试查看ELKI文档中的Clustering Class失败。

private static Clustering<Model> runModel(double eps, int minpts, Database db){

    //double eps = 10;
    //int minpts = 5;
    //db = data in a double[][] format;

    Clustering<Model> c = new DBSCAN<NumberVector>(
            EuclideanDistanceFunction.STATIC, eps, minpts).run(db);

    return c;
}

我想让这种方法定期写入控制台。或以任何方式我都可以看到算法的进度。

1 个答案:

答案 0 :(得分:1)

是的

如果使用-verbose标志,则记录将包括进度。

通过编程,您可以使用LoggingConfiguration来设置详细程度。

不是所有算法,而是许多算法;包括DBSCAN。进度记录还将包括剩余时间的估计。

请注意,登录不是免费的-需要付出额外的努力,因此可能导致程序运行时间更长。详细应该是合理的(进度记录包括限制成本的速率控制),但是在DEBUG级别,它可能会变得太昂贵。

要减少运行时间,请确保将索引添加到数据库中。