티스토리 뷰
📊 클러스터링을 이용한 이상치 탐지
📌 클러스터링이란 무엇인가
클러스터링(clustering)은 데이터를 유사한 특성을 지닌 집단(cluster)으로 묶는 기법입니다.
데이터는 보통 일정한 패턴을 이루며, 서로 가까운 것끼리 모이고, 그렇지 않은 데이터는 멀리 떨어집니다.
예를 들어, 데이터가 다음과 같이 주어졌다고 가정합니다:
\( [1, 2, 3, 4, 5] \)는 서로 가깝기 때문에 하나의 군집으로 묶이고,
\( [99, 100] \)은 이들과는 멀리 떨어져 별도의 군집으로 묶입니다.
이처럼 데이터는 자연스럽게 몇 개의 덩어리로 나눠지는데, 문제는 “어떻게 이런 군집을 객관적으로 나눌 수 있을까?”라는 점입니다.
이 질문에 답하기 위해, 밀도 기반으로 군집을 정의하는 DBSCAN을 사용해 군집을 형성하고 이상치를 탐지합니다.
다른 이상치 방법을 알고 싶다면?
2025.07.09 - [매치업/통계로 하는 탐색적 데이터분석] - 이상치 탐색 방법1: 표준점수를 이용한 이상치 탐색
이상치 탐색 방법1: 표준점수를 이용한 이상치 탐색
✨ 표준점수를 이용한 이상치 탐색📌 이상치란?이상치(outlier)란 데이터셋 안에서 다른 데이터들과 비교했을 때, 유독 크거나 혹은 유독 작은 값을 뜻합니다.이상치는 입력 오류나 측정 오류일
eunjin123123-programming.tistory.com
📌 DBSCAN의 정의
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)은 밀도 기반 클러스터링 기법입니다.
데이터의 분포에서 밀도가 높은 영역을 군집으로, 밀도가 낮아 고립된 영역을 이상치(노이즈)로 판별합니다.
DBSCAN은 군집 수를 미리 지정하지 않아도 되고, 군집의 형태가 원형일 필요도 없으며, 이상치 탐지에도 적합합니다.
DBSCAN은 두 가지 핵심 개념을 이용합니다:
- ε(epsilon): 한 점을 중심으로 둘러보는 거리의 기준(반경)입니다.
예를 들어, 점 \( A \)와 점 \( B \)의 거리가 1이고, ε가 1.5라면 \( A \)와 \( B \)는 서로 이웃으로 간주됩니다. - minPts: ε 안에 있어야 하는 최소 이웃 수입니다.
한 점의 ε 반경 안에 이웃이 minPts 이상 있으면 군집의 중심(Core Point)으로 인정됩니다.
📌 DBSCAN의 작동 원리
DBSCAN은 ε와 minPts를 기준으로 데이터 간의 연결을 평가하고, 군집과 이상치를 구분합니다.
아래 예제를 통해 작동 과정을 단계별로 설명합니다.
예제 데이터
- 데이터: \( A=(1,1), B=(2,1), C=(3,1), D=(5,5) \)
- 설정: ε=1.5, minPts=2
1️⃣ ε와 이웃의 정의
ε는 한 점을 기준으로 “내 주변에서 어느 정도 거리까지를 이웃으로 볼 것인가?”를 결정하는 반경입니다.
예를 들어, 점 \( A \)와 점 \( B \)의 거리가 1이고, ε가 1.5라면 \( A \)와 \( B \)는 서로 이웃입니다.
이처럼 ε는 두 점 사이의 거리가 ε보다 작거나 같을 때 이웃으로 인정하는 기준 거리입니다.
이 거리는 보통 유클리드 거리로 계산합니다:
$$ d(A,B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $$예를 들어:
- \( A=(1,1), B=(2,1), C=(3,1), D=(5,5) \)
ε를 1.5로 설정하면: - \( d(A,B) = 1 \) → \( A, B \)는 이웃
- \( d(B,C) = 1 \) → \( B, C \)는 이웃
- \( d(A,C) = 2 \) → \( A, C \)는 직접 이웃 아님
2️⃣ 군집의 연결성
DBSCAN에서는 직접 연결된 점뿐 아니라, 이웃의 이웃을 따라 연결된 점까지도 군집으로 인정합니다.
예를 들어:
- \( A \)와 \( B \)는 직접 연결
- \( B \)와 \( C \)도 직접 연결
- \( A \)와 \( C \)는 직접 연결되지 않았지만, \( A - B - C \)로 이어져 하나의 군집
이것이 밀도-연결성(density connectivity)입니다.
3️⃣ minPts와 점의 유형
DBSCAN에서는 군집을 정의하기 위해 군집으로 인정될 수 있는 최소 조건을 정합니다.
군집은 일정한 밀도를 지닌 패턴이어야 하고, 단순히 몇 점이 가까이 있다고 해서 군집이라고 하진 않습니다.
이 밀도의 기준이 되는 값이 바로 minPts입니다.
minPts는 “이 점을 중심으로 군집을 이루려면, 최소 몇 개 이상의 점이 연결돼 있어야 한다”는 의미를 가집니다.
📌 최소 기준이 없으면 발생하는 문제
예: \( [1], [100], [500] \)처럼 서로 멀리 떨어진 점들에 대해 minPts를 1로 설정하면
각각이 군집으로 잘못 판별됩니다.
📌 군집과 이상치를 판별하는 기준
예: \( [1, 2, 3] \)이라는 점들에 대해 minPts=3이면 하나의 군집으로 판별됩니다.
minPts=4이면 군집으로 인정되지 않습니다.
📌 군집과 이상치를 구분하는 논리
이처럼 minPts를 설정하면, 군집의 중심(Core Point), 중심에 연결된 경계(Border Point),
둘 다 아닌 이상치(Noise Point)로 구분할 수 있습니다.

🧩 군집의 세 가지 구성 요소
DBSCAN에서 각 점은 다음 세 가지 중 하나로 분류됩니다.
군집을 만들기 위해서는 반드시 Core Point가 존재해야 하고, 여기에 Border Point가 붙어 군집의 형태를 완성합니다.
이 두 범주 어디에도 속하지 못하면 Noise Point로 간주됩니다.
| 유형 | 정의 | 역할 |
|---|---|---|
| 🌟 Core Point | ε 반경 안에 minPts 이상의 점이 있는 중심점 | 군집을 형성하고 유지하는 중심 |
| 🔷 Border Point | ε 안에는 minPts 미만이지만 Core에 연결된 점 | 군집의 가장자리, 패턴에 속함 |
| ❌ Noise Point | Core에도 Border에도 속하지 못한 고립된 점 | 군집 패턴에 속하지 않는 이상치 |
🌟 Core Point: 군집의 중심
군집은 반드시 Core Point가 있어야 형성됩니다.
Core Point는 자신의 ε 반경 안에 minPts 이상의 이웃이 존재하는 점입니다.
군집 패턴을 유지할 수 있는 충분한 밀도를 만족하기 때문에 군집의 중심 역할을 합니다.
예시
- 데이터: \( A=(1,1), B=(2,1), C=(3,1), D=(5,5) \)
- 설정: ε=1.5, minPts=2
- \( B \)는 ε 안에 \( A \), \( C \)가 있어 이웃 수 2로 minPts를 만족 → Core Point
🔷 Border Point: 군집의 경계
군집의 가장자리를 형성하지만, 중심은 아닙니다.
Border Point는 자신의 ε 안에는 minPts를 만족하지 못하지만,
Core Point의 ε 안에 포함돼 군집의 일부로 인정되는 점입니다.
예시
- \( A \), \( C \)는 ε 안에 \( B \)만 있어 이웃 수 1 → minPts 불충분
- 그러나 \( B \)의 ε 안에 포함돼 군집의 가장자리 → Border Point
❌ Noise Point: 군집 밖의 이상치
군집 패턴에 속하지 못하고 고립된 점입니다.
Noise Point는 ε 안에 이웃이 거의 없고, Core Point의 이웃에도 속하지 않는 점입니다.
예시
- \( D \)는 ε 안에 다른 점이 없고, Core Point에도 연결되지 않음 → Noise Point
📝 요약
DBSCAN은 군집이 되려면 Core Point를 중심으로 Border Point가 붙어 패턴을 형성해야 한다고 정의합니다.
이 두 조건을 만족하지 못하는 점은 이상치로 판별됩니다.
- ✅ 군집의 중심: Core Point
- 🔷 군집의 가장자리: Border Point
- ❌ 군집에 속하지 못한 점: Noise Point
군집이란 단순히 가까운 점들이 아니라, 충분한 밀도로 연결돼 패턴을 이루는 집합입니다.
🔍 결론
- ✅ 군집은 단순히 가까운 점들이 아니라, 충분한 밀도로 연결된 패턴이다.
DBSCAN은 군집을 밀도로 정의해, 패턴을 이루는 집합과 우연히 가까운 점들을 구분할 수 있게 한다. - ✅ DBSCAN은 군집의 중심(Core)과 경계(Border), 이상치(Noise)를 구분한다.
Core Point를 중심으로 Border Point가 연결되며 군집을 이루고, 이 두 범주에 속하지 못한 점은 이상치로 판별된다. - ✅ minPts는 군집을 군집답게 정의하기 위한 최소 기준이다.
minPts를 설정함으로써, 데이터에 충분한 밀도가 있는지 평가하고 군집과 이상치를 명확히 구분할 수 있다. - ✅ DBSCAN은 군집화와 이상치 탐지를 동시에 수행할 수 있는 강력한 기법이다.
별도의 군집 수를 지정할 필요 없이 데이터의 밀도 패턴을 분석해 유연하게 군집과 이상치를 찾아낸다.
'매치업 > 통계로 하는 탐색적 데이터분석' 카테고리의 다른 글
| 이상치탐색3: 회귀분석으로 이상치 탐색 (0) | 2025.07.09 |
|---|---|
| 이상치 탐색 방법1: 표준점수를 이용한 이상치 탐색 (0) | 2025.07.09 |
| 첨도란? 개념 및 공식, 의미 해석 (0) | 2025.07.07 |
| 왜도(Skewness)의 정의, 공식 및 계산 방법 상세 설명 (0) | 2025.07.07 |
| 범주형 자료란? 개념과 요약 방법 정리 (2) | 2025.07.07 |
- Total
- Today
- Yesterday
- HTML
- 코딩 테스트
- 그래프 탐색
- C++
- 알고리즘
- 프로그래밍
- 그리디알고리즘
- 알고리즘기초
- 동적 계획법
- DP
- Python
- 알고리즘 문제풀이
- python 알고리즘
- 문제 풀이
- c언어
- 파이썬코딩
- 알고리즘문제풀이
- 문제풀이
- 그리디
- 프로그래머스
- 문자열처리
- dfs
- 상속
- 파이썬
- 코딩
- 브루트포스
- 객체지향
- 코딩테스트
- 백준
- 동적계획법
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
