Как кластеры от DBSCAN иногда не консервативно?
-
16-10-2019 - |
Вопрос
Я уже давно использую кластеризацию в своей сумке с методами ML, и я никогда не нашел удовлетворительного ответа на этот вопрос.
В DBSCAN мы определяем максимальный радиус для образования кластеров. Алгоритм сканирует пространство и группу вместе точки, которые все доступны друг от друга. Тем не менее, иногда мы можем получить невыпуклочный кластер.
Моя путаница связана с тем, как понятие «радиуса», который описывает выпуклый объект, может быть вводом в алгоритм, который приводит к невыпульсному объекту?
Решение
Кластер в DBSCan состоит из несколько Основные очки.
Радиус - это область, покрытая единственной точкой ядра, но вместе с точками соседей ядра форма будет намного сложнее. В частности, они могут быть намного больше, чем epsilon, поэтому вы должны выбрать небольшую ценность и полагаться на эту функцию «покрытия».
Другие советы
Я думаю, что это не народно, потому что конкретное назначение кластера, которое вы получаете при применении DBSCAN, зависит от порядок, который вы проходите по данным.
Давайте попробуем проиллюстрировать это примером. Рассмотрим этот набор данных:
Вы хотите запустить DBSCAN с Radius $ R = 3 $ и $ Text {min_pts} = 4 $, так что вы получите это:
Точка в центре не является основной точкой, потому что в ней всего 3 балла, а не 4, и у нас есть только две основные точки. И в зависимости от того, как вы пересекаете точки данных, вы можете получить разные назначения кластера:
На верхнем изображении показан результат, который мы получим, пройдя слева направо, а нижняя картина-пройдя справа налево.
По -видимому, оба эти результаты будут соответствовать одинаковому значению функции стоимости, поэтому функция затрат имеет несколько минимумов, и она не выпуклая.