Алгоритм DBSCAN был объяснен в этой статье с подробным объяснением проекта!

Просьба ко всем, пожалуйста, прочтите мою статью о кластеризации, прежде чем приступать к этой, потому что это будет большим подспорьем для вас, ребята, поскольку поможет понять основы кластеризации!



Введение в алгоритм кластеризации на основе плотности (DBSCAN)!

Это означает Density-Based Spatial Clustering of Applications with Noise.

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

У него есть 2 параметра, по которым он работает:

1. Радиус: это радиус окрестности, если он включает в себя достаточное количество точек, то он известен как Плотная область. Этот параметр устанавливается в алгоритме DBSCAN с помощью epsparameter алгоритма DBSCAN. Здесь «eps» означает эпсилон.

2. Минимальное количество соседей: это мин. нет. точек, которые должны присутствовать в радиусе для определения кластера. Этот параметр устанавливается в алгоритме DBSCAN с помощью его параметра min_samples. Здесь «min_samples» означает минимальное количество выборок, которые необходимо учитывать для плотной области.

DBSCAN может формировать кластеры произвольной формы, чего не хватает другим алгоритмам кластеризации.

Типы точек в DBSCAN

Во внутренней работе DBSCAN генерируются 3 типа точек:

  1. Основная точка: в эту категорию точек входят те точки, которые имеют по крайней мере минимальное количество точек вокруг себя в заданном радиусе для формирования кластера, включающего себя. Мы также можем рассматривать точку как основную точку, если она имеет (n-1) точек в заданном радиусе, исключая себя, где «n» — это минимальное количество точек, которые должны присутствовать в радиусе, чтобы считать эту часть точкой. плотный район.

Например, если для того, чтобы сделать кластер максимально плотным, требуется 7 точек, а в заданном радиусе есть точка, имеющая еще 6 на границе радиуса, то эта точка будет считаться центральной точкой.

2. Граничные точки: в эту категорию точек входят те точки, которые не имеют минимального количества точек вокруг себя в заданном радиусе для формирования кластера.

Например, если требуется 7 точек, чтобы сделать кластер максимально плотным, и в заданном радиусе есть точка, имеющая менее 6 точек на границе радиуса, то эта точка вместе со всеми другими точками в этом радиусе будет считаются граничными точками.

3. Выбросы. В эту категорию баллов входят те баллы, которые не включены ни в один из кластеров.

Формирование кластера в DBSCAN

Это очень простой и основной процесс. Он включает в себя итеративный и непрерывный процесс объединения небольших кластеров в большие до тех пор, пока не останется кластеров для объединения.

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

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

Из-за описанного выше процесса объединения кластеров формируются кластеры произвольной формы.

Почему стоит выбрать кластеризацию на основе плотности?

Он имеет преимущества перед другими алгоритмами в некоторых условиях.

Другие алгоритмы кластеризации, такие как K-Means, иерархическая кластеризация, нечеткая кластеризация и т. д., могут использоваться для кластеризации данных без контроля. Но когда дело доходит до кластеризации произвольной формы или концепции кластера внутри кластера, другие вышеупомянутые алгоритмы кластеризации могут потерпеть неудачу или не дать хороших результатов.

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

Кроме того, это позволяет нам легко идентифицировать выбросы, которые действуют как шум в данных, а затем, в соответствии с нашим требованием, мы можем легко их удалить. С другой стороны, алгоритм K-Means определенно назначит каждую точку кластеру, даже если они являются выбросами (не принадлежат ни к одному из кластеров).

Преимущества DBSCAN

  • Он может образовывать кластеры произвольной формы.
  • Он устойчив к выбросам, то есть может легко их идентифицировать.
  • Он не требует указания количества кластеров, он автоматически находит оптимальное количество кластеров в соответствии с указанными параметрами (эпсилон и минимальные выборки).
  • Он может легко работать в состоянии кластера в условиях/сценарии кластера.
  • Он может отделить области с высокой плотностью от низкой плотности.

Пример точечного графика на карте

На изображении ниже показан пример графика точек, которые можно дополнительно сгруппировать с помощью DBSCAN.

Проект кластеризации данных метеостанций с помощью DBSCAN!

Импорт необходимых библиотек для проекта!

В строке номер «18» был инициализирован SimpleImputer, который станет базой для заполнения отсутствующих значений в столбцах набора данных.

В строке номер «21» был инициализирован ColumnTransformer, который использовался для заполнения отсутствующих значений в каждом столбце, указанном в списке «a» в ColumnTransformer. Параметру остальное присвоено значение сквозной, что означает, что если во фрейме данных присутствует какой-либо другой столбец, кроме столбцов, указанных в списке, а», не прикасайтесь к ним.

В строке номер «29» данные были преобразованы путем вызова преобразователя, построенного выше.

Для получения более подробной информации об этом проекте ознакомьтесь с этим проектом на Github, нажав на ссылку, указанную ниже!



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



Я надеюсь, что моя статья объясняет все и все, что связано с кластеризацией на основе плотности, а также поясняет проект. Большое спасибо, что потратили свое время на чтение моей статьи и пополнили свои знания!