DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
밀도 기반 클러스터링 및 이상 탐지를 위한 DBSCAN을 탐구해 보십시오. 이것이 Ultralytics YOLO26와 함께 데이터셋 내의 임의의 형태와 노이즈를 어떻게 식별하는지 배우십시오.
DBSCAN (밀도 기반 공간 클러스터링 - 노이즈 포함)은 데이터의 밀도를 기반으로 구분되는 그룹을 식별하는 데 사용되는 강력한 비지도 학습 알고리즘입니다. 구형 클러스터를 가정하거나 미리 정해진 그룹 수를 요구하는 기존 클러스터링 방식과 달리, DBSCAN은 저밀도 영역으로 분리된 고밀도 영역을 찾습니다. 이러한 기능 덕분에 임의의 모양과 크기를 가진 클러스터를 발견할 수 있어, 기본적인 구조를 알 수 없는 복잡한 실제 데이터셋을 분석하는 데 매우 효과적입니다. 이 알고리즘의 주요 장점은 이상 탐지 기능이 내장되어 있다는 점이며, 저밀도 영역의 포인트를 클러스터에 강제로 포함시키는 대신 자동으로 노이즈로 분류합니다.
Link to this section핵심 개념 및 파라미터#
이 알고리즘은 각 데이터 포인트 주변의 이웃을 정의하고 그 근처에 몇 개의 포인트가 포함되는지 계산하여 작동합니다. 이 과정을 제어하는 두 가지 주요 하이퍼파라미터가 있으며, 데이터의 특성에 맞게 신중한 하이퍼파라미터 튜닝이 필요합니다.
- Epsilon (eps): 이 파라미터는 이웃을 찾기 위한 포인트 주변의 최대 반경을 지정합니다. 이는 "도달 가능성" 거리를 정의합니다.
- Minimum Points (minPts): 밀집 영역 또는 "코어"를 형성하기 위해 Epsilon 반경 내에 필요한 최소 데이터 포인트 수를 설정합니다.
이 파라미터를 기반으로 DBSCAN은 데이터셋의 모든 포인트를 세 가지 유형 중 하나로 분류합니다.
-
Core Points: Points that have at least
minPtsneighbors within theepsradius. These points form the interior of a cluster. -
경계 포인트 (Border Points): 코어 포인트의
eps반경 내에 있지만, 자기 자신의 이웃 수는minPts미만인 포인트입니다. 이들은 클러스터의 가장자리를 형성합니다. -
노이즈 포인트 (Noise Points): 코어 포인트도 아니고 경계 포인트도 아닌 포인트입니다. 이들은 사실상 이상치로 취급되며, 이상치 탐지와 같은 작업에 유용합니다.
Link to this sectionDBSCAN vs. K-Means 클러스터링#
둘 다 머신 러닝 (ML)의 기본이지만, DBSCAN은 특정 상황에서 K-Means 클러스터링보다 뚜렷한 장점을 제공합니다. K-Means는 센트로이드와 유클리드 거리에 의존하며, 종종 클러스터가 볼록하거나 구형이라고 가정합니다. 이는 길쭉하거나 초승달 모양의 데이터에서 성능 저하를 초래할 수 있습니다. 반면, DBSCAN의 밀도 기반 접근 방식은 데이터 분포의 자연스러운 윤곽을 따를 수 있게 합니다.
또 다른 중요한 차이점은 초기화에 있습니다. K-Means는 사용자가 클러스터 수(k)를 미리 지정해야 하므로 사전 지식 없이는 어렵습니다. DBSCAN은 데이터 밀도에서 클러스터 수를 자연스럽게 추론합니다. 또한 K-Means는 모든 포인트를 그룹에 강제로 포함시키기 때문에 이상치에 민감하며, 이로 인해 클러스터 중심이 왜곡될 수 있습니다. DBSCAN은 포인트를 노이즈로 레이블링할 수 있어 데이터 이상 현상이 유효한 클러스터를 오염시키는 것을 방지하며, 예측 모델링과 같은 후속 작업을 위해 더 깨끗한 결과를 보장합니다.
Link to this section실제 애플리케이션 사례#
DBSCAN은 공간 분석과 강력한 노이즈 처리가 필요한 산업 분야에서 널리 적용됩니다.
- 지리 공간 분석: 도시 계획 및 물류 분야에서 분석가들은 DBSCAN을 사용하여 배달 차량이나 차량 공유 서비스의 GPS 좌표를 그룹화합니다. 고밀도 하차 구역을 식별함으로써 기업은 경로 계획 및 창고 위치를 최적화할 수 있습니다. 예를 들어, 물류 분야의 AI는 종종 효율성을 높이기 위해 배달 정거장을 클러스터링하는 작업을 포함합니다.
- 시각 기반 이상 탐지: 제조 분야에서 YOLO26과 같은 모델로 구동되는 시각 검사 시스템은 표면 결함을 감지할 수 있습니다. DBSCAN은 제품 맵에서 이러한 결함의 좌표를 클러스터링할 수 있습니다. 고립된 감지 결과는 센서 노이즈로 무시될 수 있지만, 밀집된 클러스터는 체계적인 제조 결함을 나타내며 품질 검사를 위한 경고를 트리거할 수 있습니다.
Link to this section코드 예제: 감지 중심점 클러스터링#
컴퓨터 비전 워크플로우에서 개발자는 종종 Ultralytics Platform을 사용하여 객체 탐지기를 학습시키고 결과를 후처리합니다. 다음 예제는 sklearn 라이브러리를 사용하여 탐지된 객체의 중심점을 클러스터링하는 방법을 보여줍니다. 이는 공간적으로 관련된 탐지 결과를 그룹화하여 동일한 객체에 대한 여러 바운딩 박스를 병합하거나 객체 그룹을 식별하는 데 도움이 됩니다.
import numpy as np
from sklearn.cluster import DBSCAN
# Simulated centroids of objects detected by YOLO26
# [x, y] coordinates representing object locations
centroids = np.array(
[
[100, 100],
[102, 104],
[101, 102], # Cluster 1 (Dense group)
[200, 200],
[205, 202], # Cluster 2 (Another group)
[500, 500], # Noise (Outlier)
]
)
# Initialize DBSCAN with a radius (eps) of 10 and min_samples of 2
# This groups points close to each other
clustering = DBSCAN(eps=10, min_samples=2).fit(centroids)
# Labels: 0, 1 are cluster IDs; -1 represents noise
print(f"Cluster Labels: {clustering.labels_}")
# Output: [ 0 0 0 1 1 -1]Link to this section딥러닝과의 통합#
While DBSCAN is a classic algorithm, it pairs effectively with modern deep learning. For instance, high-dimensional features extracted from a convolutional neural network (CNN) can be reduced using dimensionality reduction techniques like PCA or t-SNE before applying DBSCAN. This hybrid approach allows for clustering complex image data based on semantic similarity rather than just pixel location. This is particularly useful in unsupervised learning scenarios where labeled training data is scarce, helping researchers organize vast archives of unlabeled images efficiently.






