Yolo 비전 선전
선전
지금 참여하기
용어집

DBSCAN (Density-Based Spatial Clustering of Applications with Noise, 노이즈 기반 밀도 공간 클러스터링)

DBSCAN을 발견하십시오: 머신 러닝에서 패턴을 식별하고, 노이즈를 처리하고, 복잡한 데이터 세트를 분석하기 위한 강력한 클러스터링 알고리즘입니다.

DBSCAN(잡음이 있는 애플리케이션의 밀도 기반 공간 클러스터링)은 널리 사용되는 알고리즘으로 머신 러닝(ML)에서 널리 사용되는 알고리즘으로 데이터 포인트의 밀도를 기반으로 데이터 세트 내에서 별개의 그룹을 식별하도록 설계된 알고리즘입니다. 클러스터가 구형이라고 가정하는 알고리즘과 달리 구형이거나 미리 정의된 수의 그룹이 필요하다고 가정하는 알고리즘과 달리, DBSCAN은 임의의 모양과 크기. 특히 다음과 같은 경우에 효과적입니다. 데이터에 노이즈나 이상값이 포함된 비지도 학습 작업 노이즈나 이상값이 포함된 비지도 학습 작업에 특히 효과적이며, 데이터 탐색과 패턴 인식을 위한 강력한 도구입니다.

핵심 개념 및 메커니즘

DBSCAN의 기본 원리는 클러스터가 다른 클러스터와 분리된 밀집된 포인트 영역으로 구성된다는 것입니다. 밀도가 낮은 영역으로 분리된 점들로 구성된다는 것입니다. 이 알고리즘은 이 밀도를 정의하기 위해 두 가지 중요한 하이퍼파라미터에 의존합니다:

  • 엡실론 (eps): 두 지점 사이의 최대 거리는 다음과 같이 고려할 수 있습니다. 로 간주되는 두 지점 사이의 최대 거리입니다. 이 반경은 조사 지역을 정의합니다.
  • 최소 점수 (min_samples): 밀집된 영역을 형성하는 데 필요한 최소 포인트 수입니다. 영역을 형성하는 데 필요한 최소 포인트 수입니다. eps 반경.

이러한 매개변수를 기반으로 DBSCAN은 모든 데이터 포인트를 세 가지 특정 유형으로 분류하여 효과적으로 필터링합니다. 데이터 전처리 단계에서 노이즈를 효과적으로 필터링합니다:

  1. 핵심 사항: 점이 최소한 min_samples 포인트( 자체 포함) eps 이웃.
  2. 경계점: 한 포인트가 코어 포인트에서 도달할 수 있고 그 이웃에 있지만 이웃에 있지만 그 자체로 코어 포인트가 되기에는 이웃이 충분하지 않은 경우 경계 포인트입니다.
  3. 노이즈 포인트: 코어 포인트나 경계 포인트가 아닌 모든 포인트는 노이즈 또는 이상값으로 표시됩니다. 이 기능은 다음과 같은 경우에 매우 유용합니다. 이상 징후 탐지.

기술적으로 더 자세히 알아보려면 DBSCAN에 대한 Scikit-learn 문서 에서 포괄적인 구현 세부 정보를 제공하며, 1996년 연구 논문에서 기본 개념을 살펴볼 수 있습니다. 1996년 연구 논문에서 기본 개념을 살펴볼 수 있습니다.

DBSCAN과 K-평균 클러스터링 비교

DBSCAN과 K-평균 클러스터링은 데이터 파이프라인에 맞는 올바른 도구를 선택하는 데 필수적입니다.

  • 클러스터 모양: K-평균은 클러스터가 구형이고 크기가 비슷하다고 가정하므로, 길고 불규칙한 패턴을 식별할 때 오류가 발생할 수 있습니다. 오류가 발생할 수 있습니다. DBSCAN은 데이터의 모양에 맞게 조정되므로 다음과 같은 경우에 더 우수합니다. 복잡한 기하학적 구조의 지형 공간 분석.
  • 클러스터 수: K-Means는 사용자가 클러스터 수($k$)를 미리 지정해야 합니다. DBSCAN은 데이터 밀도에 따라 클러스터 수를 자동으로 결정합니다.
  • 노이즈 처리: K-Means는 모든 데이터 요소를 클러스터에 강제로 집약하여, 잠재적으로 이상값으로 결과를 왜곡할 수 있습니다. DBSCAN은 노이즈를 명시적으로 식별하여 결과 그룹의 품질을 개선하고 더 깨끗한 데이터 집합을 더 깔끔한 데이터 집합을 만들 수 있습니다.

AI 및 컴퓨터 비전의 실제 애플리케이션

DBSCAN은 일반적인 클러스터링 알고리즘이지만, 최신의 컴퓨터 비전(CV) 및 AI 워크플로우에서 중요한 역할을 하며, 종종 후처리 단계로 사용됩니다.

  • 객체 감지의 공간 그룹화: 군중 모니터링 또는 트래픽 분석과 관련된 시나리오에서, 다음과 같은 모델 YOLO11 과 같은 모델은 개별 객체를 감지합니다. DBSCAN은 그런 다음 이러한 객체의 중심을 경계 상자의 중심을 클러스터링하여 사람 그룹이나 차량의 클러스터를 식별합니다. 이를 통해 교통 체증과 자유로운 교통량을 식별하는 등 장면의 역학을 이해하는 데 도움이 됩니다. 교통 체증을 식별하는 등 장면의 역학을 이해하는 데 도움이 됩니다.
  • 소매점 레이아웃 최적화: 소매업체는 고객 이동 데이터를 분석하여 DBSCAN을 사용하여 다음과 같은 작업을 수행할 수 있습니다. 매장 내 고밀도 '핫존'을 찾을 수 있습니다. 이러한 인사이트를 통해 기업은 리테일 업계에서 AI를 활용하여 제품 배치를 최적화하고 매장 흐름을 개선할 수 있습니다.
  • 제조 분야의 이상 징후 탐지: In 스마트 제조에서 센서는 장비의 결함을 모니터링합니다. 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은 종종 딥러닝 모델과 함께 사용되어 결과를 개선하는 데 사용됩니다. 예를 들어 이미지 세분화 또는 인스턴스 분할을 수행한 후, 이 알고리즘은 병합될 수 있는 공간적으로 인접한 객체의 개별 인스턴스를 분리할 수 있습니다. 또한 다음과 같은 분야에서도 유용합니다. 전파를 위한 반지도 학습 레이블을 고밀도 영역 내 근처의 레이블이 없는 지점으로 전파하는 반지도 학습에도 유용합니다.

연구자와 엔지니어에게는 다음과 같은 라이브러리가 유용합니다. NumPyScikit-learn과 같은 라이브러리는 DBSCAN을 대규모 파이프라인에 쉽게 통합할 수 있게 해줍니다. 다음과 같은 프레임워크에 기반한 PyTorch. 이러한 고전적인 기법을 이해하면 복잡한 신경망의 출력을 해석하고 조작하는 신경망의 출력을 해석하고 조작하는 능력을 향상시킵니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기