Это, наверное, первый блог, который я написал на Medium. Так что извините, если в содержании есть ошибки. 😊
Небольшая предыстория обо мне: я недавно начал изучать алгоритмы машинного обучения и шаг за шагом изучать их. Я помню, как в детстве мне говорили, что написание вещей облегчит их понимание и запоминание. Итак, какой у нас хороший способ вместо блога, где я могу писать, читать, учить и учиться.
Теперь, переходя к теме, я использовал пример, который, как мне кажется, будет легче понять и запомнить алгоритм.
Определение DBSCAN:
DBSCAN - это пространственная кластеризация приложений с шумом на основе плотности. Это алгоритм кластеризации данных на основе плотности, т.е. с учетом некоторых точек в пространстве, он плотно группирует их вместе в кластеры, что помогает нам определить местонахождение точки или к которой группа может принадлежать.
Чтобы понять концепцию того, почему кластеризация данных важна и как она помогает нам в классификации данных, позвольте мне привести вам пример, по большей части похожий на метафору. Представьте, что вы открыли новую школу 🏩 и в ней много учеников. Итак, теперь вы планируете начать курсировать школьным автобусом для учеников. Итак, чтобы определить необходимое количество автобусов, вам необходимо указать количество кластеров, на которые можно разделить места для студентов.
Теперь вы собираетесь попросить студентов из одного кластера собраться в одной точке, чтобы автобус мог забрать их оттуда. Обратите внимание, что вы не хотите просить студентов, которые находятся далеко от места, подойти к нему. Итак, чтобы идентифицировать кластеры, вы сначала начинаете с некоторой точки, например, центра города или обычного места, где расположено большее количество домов. Теперь вы начинаете определять или, точнее, рассчитывать расстояние, на которое ученик остается от точки. Вы определяете одно пороговое значение (скажем, 1 км), и скажем, чтобы запустить автобусное сообщение, вам понадобится как минимум 15 студентов в этом районе. Таким образом, все ученики в пределах этого 1-километрового диапазона, если их количество составляет не менее 15, образуют 1 кластер. Точно так же вы начинаете группировать студенческие места в различные кластеры. Вы определяете, что могут быть некоторые ученики, которые далеки от кластеров, которые вы определили. Такие студенты называются выбросами и считаются ШУМОМ. Они могут обрабатываться различными способами в алгоритме DBSCAN.
После того, как вы определили кластеры, можно начинать автобусное сообщение. Теперь, если к вашей школе присоединится новый ученик, вы сможете определить его местонахождение и легко предсказать, к какому кластеру он принадлежит. Так работает DBSCAN.
Теперь, переходя к терминологии, DBSCAN требует двух параметров:
1. eps: указывает, насколько близко должны быть точки друг к другу, чтобы их можно было считать частью кластера, то есть пороговое значение, которое мы рассматривали в нашем случае. Это означает, что если расстояние между двумя точками меньше или равно этому значению (eps), эти точки считаются соседними и группируются в кластер.
2. minPoints минимальное количество точек для формирования плотной области. Например, если мы установим для параметра minPoints значение k, тогда нам понадобится как минимум kpoints, чтобы сформировать плотную область. В нашем случае мы считали этот параметр равным 15.
Алгоритм DBSCAN:
Переходя к алгоритму, ниже приведены этапы работы DBSCAN:
1. Найдите точки в окрестности eps каждой точки и определите основные точки с более чем minPoints соседями.
2. Найдите компоненты связности основных точек на графе соседей, игнорируя все несвязанные точки.
3. Назначьте каждую неосновную точку (выброс) соседнему кластеру, если кластер является соседом eps, в противном случае назначьте ее шуму.
Приложения DBSCAN:
DBSCAN используется для определения ассоциаций и взаимосвязей в данных, которые трудно найти вручную, но которые могут иметь отношение к делу и, таким образом, используются для поиска закономерностей и прогнозирования тенденций в данных. Механизмы кластеризации обычно используются в биологии, медицине, социальных науках, археологии, маркетинге, распознавании персонажей, системах управления и так далее.
Реализовать DBSCAN можно с помощью различных пакетов, доступных в Python, R или MATLAB.
Не стесняйтесь оставлять свои обзоры на статью, чтобы я мог улучшить свои будущие статьи.