통계 실험실 차트
넘스탯 로고
넘스탯
LEARN · SIMULATE · VERIFY

확률부터 LLM까지, 원리부터 제대로 배우는 자기주도 학습 플랫폼

로그인
학습 메뉴
도움말

DBSCAN 실습실 — 밀도 기반 클러스터링

"K-means는 동그란 모양만, DBSCAN은 밀도로 모아" — 모양 무관 + 노이즈 자동 탐지

원하는 개념·랩·가이드를 검색해보세요

Ctrl K
기계학습 이론으로상세 이론 학습

동그랗지 않은 군집도, 노이즈도 찾아내는 클러스터링

K-means는 둥근 군집만 잘 찾고 이상한 점(노이즈)에 휘둘립니다. DBSCAN은 '점이 얼마나 빽빽이 모였는가'(밀도)로 군집을 정의해, 초승달 모양 같은 군집도 잡고 노이즈는 따로 걸러냅니다. 두 방식의 차이를 직접 비교해 보세요.
이 페이지에서 배우고 나면
  • 밀도 기반으로 군집을 찾는 원리를 직접 관찰할 수 있습니다.
  • K-means로는 못 찾는 형태의 군집을 DBSCAN이 어떻게 잡는지 비교할 수 있습니다.
  • 어떤 점이 노이즈로 분류되는지, 파라미터가 그 경계를 어떻게 바꾸는지 확인할 수 있습니다.
K-means vs DBSCAN — 본질적 차이

초승달(moons) 데이터에서 두 알고리즘의 차이가 극명히 드러납니다. K-means는 구형 클러스터를 가정하므로 초승달을 잘못 가르고, DBSCAN은 밀도로 연결된 점들을 따라가며 모양 무관으로 정확히 분리합니다.

K-means는 구형 가정 / DBSCAN은 밀도 기반 — 초승달에서 차이 명확K-means는 구형 가정 / DBSCAN은 밀도 기반 — 초승달에서 차이 명확
DBSCAN의 3가지 점 유형

DBSCAN은 모든 점을 3가지로 분류합니다: (1) Core: 반경 eps 안에 min_samples개 이상 이웃이 있는 점, (2) Border: 자신은 core가 아니지만 core의 이웃, (3) Noise: 그 어느 쪽도 아닌 외딴 점. 이 단순한 분류가 클러스터의 모양과 노이즈를 동시에 다룹니다.

Core / Border / Noise — 단순한 3분류로 임의 모양 클러스터링Core / Border / Noise — 단순한 3분류로 임의 모양 클러스터링
예측 먼저 — 실험 전에 답을 정해 보세요
예측 → 실험 → 확인

정답을 몰라도 괜찮습니다 — 먼저 예측을 정해야 시뮬레이션 결과가 기억에 남습니다. 예측을 고른 뒤 아래 시뮬레이션으로 직접 확인하고, 그다음 결과를 열어 보세요.

1. K-Means는 못 하는데 DBSCAN은 할 수 있는 것은?
2. 이웃 반경 eps를 아주 크게 키우면 어떻게 될까요?
로그인하면 예측 기록이 계정에 저장됩니다

어느 기기에서든 이어서 학습하고, 오답 기반 복습 추천을 받을 수 있습니다.

카카오로 시작하기네이버로 시작하기구글로 시작하기
회원가입 절차 없음 — 닉네임만 저장하며, 이메일·연락처는 수집하지 않습니다.
DBSCAN 인터랙티브 — 밀도 기반 클러스터링

eps와 min_samples 슬라이더를 조절하며 클러스터·노이즈가 어떻게 변하는지 실시간 관찰. 점 위에 마우스를 올리면 eps 반경 원이 표시됩니다.

데이터셋
eps (반경) = 0.25
너무 작으면 모두 noise, 너무 크면 모두 1 cluster
min_samples = 5
core point의 최소 이웃 수
데이터 점 수 = 180
Core (큰 원)Border (중간)Noise (작고 흐림)
클러스터 수: 2
Core point: 180
Noise: 0 (0%)
실측 요약 — 이 실습이 보여주는 것

초승달·동심원·3덩어리+노이즈·밀도 격차 4가지 합성 데이터(시드 고정)에 DBSCAN을 적용해, eps(이웃 반경)와 min_samples를 움직일 때 core/border/noise 판정과 군집 수가 실시간으로 변하는 것을 관찰하는 실험입니다. 점 위에 마우스를 올리면 eps 반경 원이 표시되어 "이웃"의 정의를 눈으로 확인할 수 있습니다.

  • 기본 설정(초승달 180점, eps 0.25, min_samples 5) 실측: 정확히 2개 군집(90점 + 90점), 노이즈 0개로 두 초승달이 한 점도 섞이지 않고 분리된다 — 중심점 거리 기반인 K-Means가 원리적으로 못 푸는 모양을 밀도 연결이 푼다
  • 같은 데이터에서 eps만 0.05로 줄이면 180점 중 170점이 노이즈가 되고(남는 군집은 5점짜리 2개), 1.0으로 키우면 전부 하나의 군집으로 합쳐진다 — 결과 전체가 "이웃"의 정의 하나에 달려 있다
  • eps 0.25에서는 180점 전원이 core point이지만, min_samples를 5→15로 올리면 core가 36개로 줄고 군집은 8개로 조각나며 노이즈 18개가 생긴다 — 두 파라미터는 항상 짝으로 튜닝해야 한다

바로잡는 오개념: "군집은 중심점 주변의 둥근 덩어리이고 모든 점은 어딘가에 속해야 한다"는 고정관념 — DBSCAN은 밀도로 연결된 임의 모양을 군집으로 보며, 어디에도 속하지 않는 점을 억지로 배정하지 않고 노이즈로 남겨둔다.

AI 튜터에게 물어보기
베타

— 정답 대신 힌트로 유도합니다. 지금 화면의 실험 상태를 알고 답해요.

예: “방금 결과가 이론과 다른데 왜죠?”, “이 값을 올렸는데 왜 반대로 변하죠?”

AI 답변은 부정확할 수 있습니다. 핵심 개념은 반드시 시뮬레이션 실측으로 확인하세요. 질문 0/5 · 하루 질문 한도가 있습니다
🔧 eps 하나가 결과 전체를 결정

eps가 너무 작으면 거의 모든 점이 noise, 너무 크면 모두 하나의 클러스터로 묶입니다. 그래서 eps 튜닝이 DBSCAN의 성패를 좌우합니다.

eps에 따른 결과 변화 — 너무 작음 / 적정 / 너무 큼eps에 따른 결과 변화 — 너무 작음 / 적정 / 너무 큼
eps 선택 휴리스틱 — k-distance Plot

실무에서 eps는 어떻게 정할까요? k-distance plot이 표준 휴리스틱입니다. 각 점의 k번째 최근접 이웃까지의 거리를 오름차순으로 그린 뒤, 가장 가파르게 꺾이는 지점(Elbow)의 거리값을 eps로 사용합니다.

k-distance plot — Elbow의 거리값을 eps로 선택k-distance plot — Elbow의 거리값을 eps로 선택
DBSCAN의 한계 — 밀도가 다른 클러스터

밀도가 크게 다른 두 클러스터를 동시에 처리하기 어렵습니다. 어떤 eps를 써도 한쪽에 최적화하면 다른 쪽이 깨집니다. 해결책: HDBSCAN(계층적 밀도 기반) 또는 OPTICS(eps 자동 변화)를 사용합니다.

DBSCAN 한계: 밀도 격차 → HDBSCAN/OPTICS 필요DBSCAN 한계: 밀도 격차 → HDBSCAN/OPTICS 필요
알고리즘 비교 — 언제 무엇을 쓸까?
K-means

구형·균등 밀도 클러스터. K를 사전에 알고 있을 때.

빠름
구형
K 필요
DBSCAN

임의 모양 + 노이즈가 있는 경우. K 모름. 균등 밀도.

모양 무관
노이즈 탐지
K 불필요
HDBSCAN / OPTICS

밀도 격차 큰 데이터. 매개변수 자동 조정.

가변 밀도
고급
직접 해보기 — 실습 과제
  1. K-means 한계 체감: 초승달 데이터 + 적정 eps. 두 초승달이 깔끔히 분리되는 것을 확인 → K-means로는 절대 불가능
  2. eps 한 칸 차이의 위력: 동심원 데이터 + eps 0.20 → 0.30 → 0.50. 결과가 매번 완전히 달라짐
  3. 노이즈 탐지: '3 클러스터 + 노이즈'. 균일하게 흩어진 노이즈가 자동으로 회색 X로 분류됨
  4. 점 하나 클릭: 임의 점에 마우스 호버 → 그 점의 eps 반경 원이 표시됨. core/border 차이를 시각적으로 확인
  5. 밀도 격차의 함정: '밀도 격차' 데이터셋에서 어떤 eps를 써도 두 클러스터를 동시에 잘 잡지 못함 — HDBSCAN이 필요한 상황
📖 더 깊이 학습하기
  • Ester, Kriegel, Sander, Xu (KDD 1996): DBSCAN 원논문 — "A Density-Based Algorithm for Discovering Clusters"
  • Campello, Moulavi, Sander (PAKDD 2013): HDBSCAN — 계층적 밀도 기반
  • Ankerst et al. (SIGMOD 1999): OPTICS — 가변 밀도
  • scikit-learn 문서: sklearn.cluster.DBSCAN, HDBSCAN, OPTICS