DBSCAN을 발견하십시오: 머신 러닝에서 패턴을 식별하고, 노이즈를 처리하고, 복잡한 데이터 세트를 분석하기 위한 강력한 클러스터링 알고리즘입니다.
DBSCAN(잡음이 있는 애플리케이션의 밀도 기반 공간 클러스터링)은 널리 사용되는 알고리즘으로 머신 러닝(ML)에서 널리 사용되는 알고리즘으로 데이터 포인트의 밀도를 기반으로 데이터 세트 내에서 별개의 그룹을 식별하도록 설계된 알고리즘입니다. 클러스터가 구형이라고 가정하는 알고리즘과 달리 구형이거나 미리 정의된 수의 그룹이 필요하다고 가정하는 알고리즘과 달리, DBSCAN은 임의의 모양과 크기. 특히 다음과 같은 경우에 효과적입니다. 데이터에 노이즈나 이상값이 포함된 비지도 학습 작업 노이즈나 이상값이 포함된 비지도 학습 작업에 특히 효과적이며, 데이터 탐색과 패턴 인식을 위한 강력한 도구입니다.
DBSCAN의 기본 원리는 클러스터가 다른 클러스터와 분리된 밀집된 포인트 영역으로 구성된다는 것입니다. 밀도가 낮은 영역으로 분리된 점들로 구성된다는 것입니다. 이 알고리즘은 이 밀도를 정의하기 위해 두 가지 중요한 하이퍼파라미터에 의존합니다:
eps): 두 지점 사이의 최대 거리는 다음과 같이 고려할 수 있습니다.
로 간주되는 두 지점 사이의 최대 거리입니다. 이 반경은 조사 지역을 정의합니다.
min_samples): 밀집된 영역을 형성하는 데 필요한 최소 포인트 수입니다.
영역을 형성하는 데 필요한 최소 포인트 수입니다. eps 반경.
이러한 매개변수를 기반으로 DBSCAN은 모든 데이터 포인트를 세 가지 특정 유형으로 분류하여 효과적으로 필터링합니다. 데이터 전처리 단계에서 노이즈를 효과적으로 필터링합니다:
min_samples 포인트(
자체 포함) eps 이웃.
기술적으로 더 자세히 알아보려면 DBSCAN에 대한 Scikit-learn 문서 에서 포괄적인 구현 세부 정보를 제공하며, 1996년 연구 논문에서 기본 개념을 살펴볼 수 있습니다. 1996년 연구 논문에서 기본 개념을 살펴볼 수 있습니다.
DBSCAN과 K-평균 클러스터링은 데이터 파이프라인에 맞는 올바른 도구를 선택하는 데 필수적입니다.
DBSCAN은 일반적인 클러스터링 알고리즘이지만, 최신의 컴퓨터 비전(CV) 및 AI 워크플로우에서 중요한 역할을 하며, 종종 후처리 단계로 사용됩니다.
다음 예는 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. 이러한 고전적인 기법을 이해하면 복잡한 신경망의 출력을 해석하고 조작하는 신경망의 출력을 해석하고 조작하는 능력을 향상시킵니다.