ELKI ClusteringVectorDumper - какие из них являются выбросами?

Я использую ELKI для кластеризации DBSCAN и его ClusteringVectorDumper для вывода идентификаторов кластеров в текстовый файл.

Какой идентификатор получают выбросы? Я предположил, что это был "0", но это не похоже на правду.

1 ответ

Вы можете найти исходный код ClusteringVectorDumper онлайн.

Не существует специальной обработки шумовых кластеров, но они будут обработаны как возвращенные Clustering.getAllClusters(), Чтобы обеспечить некоторую стабильность, этот метод в настоящее время сортирует по имени. DBSCAN не предоставляет дальнейшие имена кластеров (некоторые алгоритмы присваивают, например, имена интервалов или имена подпространств), поэтому, если я правильно помню, все кластеры будут названы либо "Cluster" или же "Noise", Так как "Noise" сортирует после "Cluster", самый большой индекс должен быть кластером шума.

Не стесняйтесь отправлять запрос на извлечение для улучшения либо именования, либо вывода. Я собирался использовать отрицательные числа для шумовых кластеров, но это увеличило бы сложность кода; и люди, скорее всего, не ожидают увидеть кластер -1 или.

Неправильно использовать DBSCAN для обнаружения выбросов. Он будет пропускать выбросы, потому что они достижимы, и назначит кластеры низкой плотности как выбросы, которые другие методы легко распознают правильно. Он также не обеспечивает ранжирование, поэтому вы мало контролируете, сколько выпадающих значений вы получаете. Если бы вы изменили DBSCAN, чтобы обеспечить такое ранжирование, вы, вероятно, изобрели бы один из старейших методов обнаружения выбросов - обнаружение выбросов kNN. (DB-Outlier также очень тесно связан с DBSCAN).

Другие вопросы по тегам