비지도학습 & 차원축소
정답 없이 데이터의 숨겨진 구조와 패턴을 발견
📌 이 글의 목적
비지도학습은 레이블(정답) 없이 데이터의 구조를 발견하는 방법임. 고객 세그먼트, 이상 탐지, 데이터 시각화 등에 활용됨.
1. 클러스터링
1.1 K-Means
가장 대표적인 클러스터링 알고리즘. 데이터를 K개 그룹으로 분할함.
동작 과정:
| 항목 | 설명 |
|---|---|
| K 선택 | Elbow Method (SSE 그래프의 꺾이는 점), Silhouette Score |
| 장점 | 직관적, 빠름, 대규모 데이터에 적합 |
| 한계 | K를 사전에 지정해야 함, 구형 클러스터만, 이상치에 민감 |
1.2 DBSCAN
밀도 기반 클러스터링. K를 지정하지 않아도 됨.
| 항목 | 설명 |
|---|---|
| 원리 | 밀도가 높은 영역을 클러스터로, 밀도가 낮은 영역은 노이즈로 분류 |
| 파라미터 | eps(이웃 반경), min_samples(최소 점 수) |
| 장점 | 임의 형태 클러스터 발견, K 불필요, 이상치 자동 탐지 |
| 한계 | 밀도가 다른 클러스터 혼재 시 어려움, 고차원에서 성능 저하 |
1.3 Hierarchical Clustering
트리(덴드로그램) 구조로 클러스터를 계층적으로 구성함. 덴드로그램을 원하는 높이에서 잘라서 K를 결정.
2. 차원축소
2.1 PCA (Principal Component Analysis)
데이터의 분산이 가장 큰 방향을 찾아 차원을 줄이는 기법.
| 항목 | 설명 |
|---|---|
| 원리 | 공분산 행렬의 고유벡터(주성분)를 구하고, 분산이 큰 순서대로 선택 |
| 활용 | 100차원 → 2~3차원 시각화, 노이즈 제거, 학습 속도 향상 |
| 장점 | 선형, 빠름, 분산 보존률 계산 가능 |
| 한계 | 비선형 관계를 포착하지 못함 |
💡 #0 수학 기초에서 다룬 고유값/고유벡터가 PCA의 핵심임. 고유값이 클수록 그 방향의 분산(=정보량)이 큼.
2.2 t-SNE
비선형 차원축소. 고차원에서의 이웃 관계를 저차원에서 보존하려는 기법.
| 항목 | 설명 |
|---|---|
| 원리 | 고차원의 유사도 분포와 저차원의 유사도 분포를 맞춤 (KL Divergence 최소화) |
| 활용 | 임베딩 시각화, 클러스터 구조 탐색 |
| 장점 | 비선형 구조 포착, 시각적으로 명확한 클러스터 |
| 한계 | 느림, 매번 결과 다름(확률적), 새 데이터에 적용 불가, 초매개변수(perplexity) 민감 |
2.3 UMAP
t-SNE의 개선. 더 빠르고 전역 구조를 더 잘 보존함.
| 비교 | t-SNE | UMAP |
|---|---|---|
| 속도 | 느림 | ✅ 빠름 |
| 전역 구조 보존 | 약함 | ✅ 우수 |
| 새 데이터 적용 | ❌ | ✅ transform 가능 |
| 현재 선호 | 레거시 | ✅ 대체 추세 |
3. 이상치 탐지
| 알고리즘 | 원리 | 적합한 상황 |
|---|---|---|
| Isolation Forest | 이상치는 적은 분할로 고립됨 | 고차원, 대규모 |
| LOF (Local Outlier Factor) | 이웃 대비 밀도가 낮으면 이상 | 밀도 기반 |
| One-Class SVM | 정상 데이터의 경계를 학습 | 정상 데이터만 있을 때 |
| Autoencoder | 복원 오차가 크면 이상 | 딥러닝 기반 |
인프라 활용:
- 서버 메트릭에서 이상 패턴 탐지 (CPU/메모리 급변)
- 네트워크 트래픽 이상 탐지
- 로그에서 비정상 패턴 발견