Показывает прогресс модели кластеризации ELKI DBSCAN во время работы модели? - PullRequest
0 голосов
/ 08 января 2019

Я использую реализацию ELSCI 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 голосов
/ 08 января 2019

Да.

Если вы используете флаг -verbose, регистрация будет включать прогресс.

Программно, вы можете использовать LoggingConfiguration для установки уровня многословия.

Не для всех алгоритмов, но для многих; в том числе DBSCAN. Ведение журнала также будет включать оценку оставшегося времени.

Обратите внимание, что ведение журнала не является бесплатным - оно требует дополнительных усилий и, следовательно, может привести к продолжительной работе программы. Подробная информация должна быть разумной (а регистрация прогресса включает контроль скорости, чтобы ограничить расходы), но на уровне DEBUG это может стать слишком дорогим.

Чтобы сократить время выполнения, обязательно добавьте индекс в базу данных.

...