Значение параметра DBSCAN MinPts в ELKI

У меня, казалось бы, тривиальный вопрос. Мне нужно, чтобы кто-то разъяснил мне значение параметра DBSCAN MinPts в реализации ELKI.

Если я использую значение k = 4 для построения графика отсортированного k- диска, это означает расстояние от точки p до ее 4-го ближайшего соседа. Это означает, что окрестность содержит 5 точек (k + 1); 4 соседа плюс точка р.

В ELKI MinPts означает только соседей или также включает точку p? В приведенном выше случае, он должен быть установлен на 4 или 5?

В оригинальной статье DBSCAN (Ester et al. 1996) говорится о том, что для MinPts нужно установить значение k (MinPts = 4). Статья DBSCAN Wikipedia также подразумевает, что MinPts относится к соседям вокруг p. Тем не менее, ELKI, похоже, ожидает, что MinPts установлен на k + 1 (MinPts = 5).

Кто-то, пожалуйста, уточните.

1 ответ

Решение

Аргументы " за", включая точку запроса:

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

Выберите все объекты в радиусе r вокруг координат x,y,z

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

Более того, если вы проводите оценку плотности, то каждая точка данных должна вносить свой вклад в плотность, не так ли? Почему один пункт будет особенным? А как насчет других точек с точно такими же координатами? Что если вы оцените плотность в точке, которой нет в базе данных? Вы бы увидели резкое увеличение плотности, если бы вы немного отошли от точки запроса!

Если вы попытаетесь определить k-ближайших соседей как запрос к базе данных D и не будете требовать, чтобы точка запроса x была частью базы данных, то, естественно, результат должен включать точку запроса, если она является частью из D.

Аргументы против, включая точку запроса:

С другой стороны, нелогично, что 1-ближайший сосед обычно является точкой запроса. Обычно, когда вы ищете "ближайшего соседа", вы, к сожалению, имеете в виду "ближайший другой объект". Даже если это формально перевести на "ближайший объект к координатам моей точки запроса в моей базе данных без моей точки запроса".

Непоследовательно используется в литературе:

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

Даже одна статья иногда включает точку запроса на одной фигуре, но не на другой!

Никогда не будет решения, которое будет вести себя в соответствии с ожиданиями всех, потому что люди, к сожалению, имеют разные представления о том, что является "правильным".

Будьте конкретны и перепроверьте!

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

Пожалуйста, проверьте сами, включает ли реализация графика k-distance в ELKI точку запроса. Возможно, мы даже изменили поведение этого класса для версии 0.7 или 0.8; так что это может отличаться для меня, чем для вас. Действительно, действительно посмотрите на источник точной версии, которую вы используете.

Если график k-расстояния не включает точку запроса, вам нужно будет использовать 3-расстояние для minPts=4, Если он включает точку запроса, то 4-расстояние согласуется с minPts=4, Я уверен, что DBSCAN считает точку запроса по вышеуказанным причинам (точка зрения базы данных, точка оценки плотности). Таким образом, для DBSCAN minPts=1 - это нонсенс (каждая точка является центральной точкой), а minPts=2 - это кластер с одной связью (любые эпсилон-соседи объединяются). Только при minPts > 2 вы начинаете получать реальные результаты DBSCAN.

GDBSCAN предлагает использовать 2*dim-1 вместо 4; Я обычно начинаю с minPts=10 тогда попробуй 20, Есть несколько причин, чтобы выбрать больший minPts:

  • Более высокая размерность обычно требует большего minPts (но для текстовых данных размерность не имеет смысла - в большинстве случаев выбирайте по внутренней размерности)
  • Шум: чем шумнее ваши данные, тем выше нужно идти с minPts
  • Дубликаты: если у вас много дубликатов, вам снова нужно увеличить minPts

Но не промахивайся. Эффективность индекса существенно падает при больших радиусах запросов. Вы хотите выбрать minPts так мало, как вы можете, но при этом получаете интересный результат. Также используйте несколько значений, чтобы получить разные представления.

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

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