2016-01-12 12 views
1

Я ищу способ создания кластеризации с плотностью. Полученные кластеры должны иметь представитель, отличный от DBSCAN. Mean-Shift, похоже, соответствует этим потребностям, но недостаточно масштабируется для моих нужд. Я изучил некоторые алгоритмы кластеризации подпространств и нашел только CLIQUE с использованием представителей, но эта часть не реализована в Elki.Кластеризация на основе плотности с представителями

+0

Почему бы вам не добавить «недостающую» функциональность? –

ответ

1

Как я уже отмечал в комментариях к предыдущей итерации вашего вопроса, https://stackoverflow.com/questions/34720959/dbscan-java-library-with-corepoints

плотности на основе кластеризации делает не предположить, что существует центр или представитель.

Рассмотрим следующий пример image from Wikipedia user Chire (BY-CC-SA 3.0):

enter image description here

Какой объект должен быть представитель красного кластера?

Клонирование на основе плотности - это поиск кластеров произвольной формы. Они не имеют значимого единственного репрезентативного объекта. Они не предназначены для «сжатия» ваших данных - это не метод vector quantization, но обнаружение структуры. Но природа такой сложной структуры не может быть сведена к одному представителю. Правильное представление такого кластера - это совокупность всех точек в кластере. Для геометрического понимания в 2D вы также можете вычислить выпуклые оболочки, например, для получения области, как на этом изображении.

Выбор репрезентативных объектов - это другая задача. Это не требуется для обнаружения такого рода структуры, и, таким образом, эти алгоритмы не вычисляют репрезентативные объекты - это будет отбрасывать процессор.

2

Вы можете выбрать объект с наивысшей плотностью как представитель кластера.

Это довольно простая модификация DBSCAN для хранения соседнего счета каждого объекта.

Но, как отметил Анони-Мусс, объект, тем не менее, может быть довольно плохим выбором. Кластеризация на основе плотности не предназначена для создания репрезентативных объектов.

Вы можете попробовать AffinityPropagation, но он также не будет масштабироваться очень хорошо.