Участник:Даниил Глазков/Алгоритм кластеризации DBSCAN: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
(Новая страница: «== Свойства и структура алгоритма == === Общее описание алгоритма === DBSCAN (Density-Based Spatial Clustering o...»)
 
Строка 68: Строка 68:
 
4. '''Функция принадлежности кластерам''':
 
4. '''Функция принадлежности кластерам''':
  
- В результате работы алгоритма получается множество кластеров <math> \{C_1, C_2, \ldots, C_k\} </math>, где каждая точка \( p \in C_i </math> принадлежит одному из кластеров или считается шумовой (если не включена ни в один кластер).
+
- В результате работы алгоритма получается множество кластеров <math> \{C_1, C_2, \ldots, C_k\} </math>, где каждая точка <math> p \in C_i </math> принадлежит одному из кластеров или считается шумовой (если не включена ни в один кластер).
  
 
5. '''Алгоритм завершения''':
 
5. '''Алгоритм завершения''':
  
 
- Алгоритм повторяет шаги кластеризации для всех нерассмотренных точек в выборке, пока все точки либо не будут отнесены к одному из кластеров, либо помечены как шум.
 
- Алгоритм повторяет шаги кластеризации для всех нерассмотренных точек в выборке, пока все точки либо не будут отнесены к одному из кластеров, либо помечены как шум.
 
 
  
 
=== Вычислительное ядро алгоритма ===
 
=== Вычислительное ядро алгоритма ===

Версия 15:45, 3 ноября 2024

1 Свойства и структура алгоритма

1.1 Общее описание алгоритма

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) — это алгоритм кластеризации, который выделяется среди других методов своей способностью находить кластеры произвольной формы и обрабатывать шум. Основная идея DBSCAN заключается в том, чтобы объединять точки в кластеры на основе плотности их расположения, что позволяет ему обнаруживать группы точек, не требуя заранее заданного количества кластеров.

Описание алгоритма:

1. Определение основных параметров:

- eps: радиус окрестности для каждой точки, внутри которого считаются соседние точки.

- minPts: минимальное количество точек, которое должно быть в `eps`-окрестности, чтобы считать точку "основной".

2. Типы точек:

- Основная точка: точка, у которой в пределах eps-окрестности находится как минимум minPts точек, включая саму точку.

- Граничная точка: точка, которая находится в eps-окрестности некоторой основной точки, но сама не является основной.

- Шумовая точка: точка, которая не является ни основной, ни граничной. Она не входит ни в один кластер.

3. Процесс кластеризации:

- Алгоритм случайным образом выбирает не рассмотренную точку из набора данных и проверяет её eps-окрестность.

- Если точка является основной, она становится началом нового кластера. Все её eps-соседи рекурсивно добавляются в кластер, если также являются основными.

- Если точка граничная, она добавляется в кластер, но не вызывает распространение кластеризации на соседей.

- Если точка шумовая, она игнорируется в процессе создания кластеров.

4. Завершение алгоритма:

- Процесс повторяется до тех пор, пока все точки не будут либо отнесены к одному из кластеров, либо помечены как шумовые.

- В результате алгоритм возвращает кластеры, которые могут быть произвольной формы, и помечает изолированные точки как шумовые.


1.2 Математическое описание алгоритма

1. Определение eps-окрестности:

Для точки [math] p \in \mathbb{R}^d [/math] её eps-окрестностью называется множество точек, находящихся на расстоянии не более eps от точки p: [math]N_{\text{eps}}(p) = \{ q \in \mathbb{R}^d \mid \text{dist}(p, q) \leq \text{eps} \}[/math] где [math] \text{dist}(p, q) [/math] — расстояние между точками p и q (обычно используется евклидово расстояние).

2. Типы точек:

- Основная точка: Точка p считается основной, если в её eps-окрестности находится как минимум minPts точек, включая её саму: [math]|N_{\text{eps}}(p)| \geq \text{minPts}[/math]

- Граничная точка: Точка p является граничной, если она принадлежит eps-окрестности основной точки, но сама не удовлетворяет условию для основной точки: [math]0 \lt |N_{\text{eps}}(p)| \lt \text{minPts}[/math]

- Шумовая точка: Точка p, которая не является ни основной, ни граничной, то есть для неё выполняется условие: [math]|N_{\text{eps}}(p)| \lt \text{minPts}[/math]

3. Формирование кластеров:

- Алгоритм начинает с произвольной нерассмотренной точки и проверяет, является ли она основной.

- Если точка p является основной, то на основе её eps-окрестности начинается формирование нового кластера C.

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

- Граничные точки, связанные с основной точкой, добавляются в кластер, но не инициируют дальнейшее расширение.

4. Функция принадлежности кластерам:

- В результате работы алгоритма получается множество кластеров [math] \{C_1, C_2, \ldots, C_k\} [/math], где каждая точка [math] p \in C_i [/math] принадлежит одному из кластеров или считается шумовой (если не включена ни в один кластер).

5. Алгоритм завершения:

- Алгоритм повторяет шаги кластеризации для всех нерассмотренных точек в выборке, пока все точки либо не будут отнесены к одному из кластеров, либо помечены как шум.

1.3 Вычислительное ядро алгоритма

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

2 Программная реализация алгоритма

2.1 Масштабируемость алгоритма и его реализации

2.2 Существующие реализации алгоритма

3 Литература

1. Воеводин Вл., Жуматий С., Соболев С., Антонов А., Брызгалов П., Никитенко Д., Стефанов К., Воеводин Вад. Практика суперкомпьютера «Ломоносов» // Открытые системы, 2012, № 7, С. 36-39.