Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) — кластеризация, основанная на плотности и пространственном распределении приложений с шумами.

Откройте для себя DBSCAN: надежный алгоритм кластеризации для выявления закономерностей, обработки шумов и анализа сложных наборов данных в машинном обучении.

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

Основные концепции и механизм

Основополагающий принцип DBSCAN заключается в том, что кластер состоит из плотной области точек, отделенной от других кластеров областями с меньшей плотностью. Алгоритм опирается на два критических гиперпараметров для определения этой плотности:

  • Эпсилон (eps): Максимальное расстояние между двумя точками, при котором одна из них считается находящейся в соседней с другой. Этот радиус определяет локальную область исследования.
  • Минимальные баллы (min_samples): Минимальное количество точек, необходимое для формирования плотной область в пределах eps радиус.

Основываясь на этих параметрах, DBSCAN классифицирует каждую точку данных на три определенных типа, эффективно отфильтровывая шумы на этапе предварительной обработки данных:

  1. Основные точки: Точка является основной, если у нее есть как минимум min_samples точки (включая себя) в пределах своего eps по соседству.
  2. Пограничные точки: Точка является пограничной, если она достижима из основной точки и находится в ее но не имеет достаточного количества соседей, чтобы самой стать основной точкой.
  3. Шумовые точки: Любая точка, которая не является основной или граничной, обозначается как шум или выброс. Эта функция неоценима для обнаружения аномалий.

Для более глубокого технического погружения можно воспользоваться Документация Scikit-learn по DBSCAN содержит исчерпывающие детали реализации, а также вы можете изучить основополагающие концепции в оригинальной научной статье 1996 года.

DBSCAN против кластеризации K-Means

Понимание разницы между DBSCAN и Кластеризация K-Means очень важна для выбора правильного инструмента для вашего конвейера анализа данных.

  • Форма кластера: K-Means предполагает, что кластеры имеют сферическую форму и одинаковый размер, что может привести к ошибкам при выявлении вытянутых или неправильных форм. DBSCAN адаптируется к форме данных, что делает его более эффективным для сложных геометрических структур, часто встречающихся в геопространственном анализе.
  • Количество кластеров: K-Means требует, чтобы пользователь заранее указал количество кластеров ($k$). DBSCAN автоматически определяет количество кластеров, основываясь на плотности данных.
  • Обработка шумов: K-Means заставляет каждую точку данных объединяться в кластер, что потенциально может исказить результаты при наличии промахи. DBSCAN явно идентифицирует шум, что улучшает качество получаемых групп и помогает в создании более чистых наборов данных.

Приложения реального мира в искусственном интеллекте и компьютерном зрении

Хотя DBSCAN является общим алгоритмом кластеризации, он играет важную роль в современных компьютерном зрении (КЗ) и искусственном интеллекте, часто часто выступая в качестве этапа постобработки.

  • Пространственная группировка обнаруженных объектов: В сценариях, связанных с мониторингом толпы или анализом трафика, такая модель, как YOLO11 обнаруживает отдельные объекты. DBSCAN может кластеризовать центроиды этих ограничительных коробок, чтобы определить группы людей или группы людей или скопления транспортных средств. Это помогает понять динамику сцены, например, определить пробку на дороге по сравнению с свободно движущегося транспорта.
  • Оптимизация планировки розничных магазинов: Анализируя данные о перемещении покупателей, ритейлеры могут использовать DBSCAN для найти "горячие зоны" с высокой плотностью покупателей в магазине. Эта информация позволяет предприятиям, использующим ИИ в розничной торговле, оптимизировать размещение товаров и улучшить работу магазина.
  • Обнаружение аномалий в производстве: На сайте В "умном" производстве датчики следят за оборудованием на предмет дефектов. DBSCAN может объединять нормальные рабочие параметры в кластеры; любые показания, выходящие за пределы этих кластеров. отмечается как шум, что приводит к предупреждению о возможном обслуживании. Это напрямую связано с контроль качества рабочими процессами.

Пример реализации на Python

В следующем примере показано, как использовать DBSCAN для кластеризации пространственных данных. В конвейере технического зрения detections массив может представлять (x, y) координаты объектов, обнаруженных Модель YOLO.

import numpy as np
from sklearn.cluster import DBSCAN

# Simulated centroids from YOLO11 detections (x, y coordinates)
# Points clustered around (10,10) and (50,50), with one outlier at (100,100)
detections = np.array([[10, 10], [11, 12], [10, 11], [50, 50], [51, 52], [100, 100]])

# Initialize DBSCAN with a neighborhood radius of 5 and min 2 points per cluster
clustering = DBSCAN(eps=5, min_samples=2).fit(detections)

# Output labels: 0 and 1 are clusters, -1 represents the noise point (outlier)
print(f"Cluster Labels: {clustering.labels_}")
# Expected Output: [ 0  0  0  1  1 -1]

Интеграция с глубоким обучением

DBSCAN часто используется в сочетании с моделями глубокого обучения для уточнения результатов. Например, после выполнения сегментации изображения или сегментации объектов, алгоритм может отделить отдельные экземпляры пространственно соседних объектов, которые в противном случае могли бы быть объединены. Он также полезен при полуподконтрольном обучении для распространения меток из небольшого набора помеченных данных в близлежащие немеченые точки в регионах с высокой плотностью.

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

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас