카테고리 없음
7주차 TIL - ML 마스터 클래스의 마지막
게임취업하고싶은 사람
2025. 2. 4. 20:43
🔹 1. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
💡 왜 필요한가? (K-means의 한계)
- K-means는 군집을 원형(Spherical)으로 가정 → 복잡한 형태의 군집(강처럼 구불구불한 군집 등)은 잘 분류하지 못함.
- 모든 클러스터 크기가 비슷하다고 가정 → 실제 데이터에서는 밀도가 다양한 군집이 존재.
- 모든 데이터가 군집에 포함되어야 함 → 이상치(Outlier)를 처리하는 기능이 부족함.
➡ 해결책: DBSCAN
→ 밀도 기반 접근법으로 데이터가 밀집된 영역을 군집으로 인식하고, 밀도가 낮은 영역을 노이즈(이상치)로 간주하는 방식.
🔹 2. DBSCAN 작동 원리
DBSCAN의 주요 개념:
- epsilon (ε): "이웃"을 정의하는 반경(거리).
- minPoints: 핵심 포인트(Core Point)가 되기 위한 최소한의 이웃 수.
🔎 데이터 포인트 분류
- 핵심 포인트(Core Point): 반경 ε 내에 최소 minPoints 이상의 데이터가 존재하는 포인트.
- 경계 포인트(Border Point): 핵심 포인트의 이웃이지만 핵심 포인트의 기준(minPoints)을 만족하지 않는 포인트.
- 잡음 포인트(Noise Point): 위 두 조건을 만족하지 않는 포인트 → 노이즈(이상치)로 분류됨.
🔹 3. DBSCAN vs K-means 비교
알고리즘K-meansDBSCAN
기본 원리 | 중심점(Centroid) 기반 | 밀도(Density) 기반 |
필요한 파라미터 | K (군집 개수) | ε (반경), minPoints (최소 이웃 수) |
군집 모양 | 원형으로 제한됨 | 어떤 모양이든 가능 |
군집 크기 | 비교적 균일한 크기 | 다양한 크기 허용 |
이상치 처리 | 모든 점을 군집에 포함해야 함 | 노이즈 포인트로 분류 가능 |
확장성 | 대규모 데이터셋에 효율적 | 대규모 데이터에서 계산 비용 증가 |
결과 일관성 | 초기값에 따라 달라짐 | 파라미터가 같으면 항상 동일한 결과 |
🔹 DBSCAN이 적합한 경우
- 데이터가 비선형적인 군집 구조를 가질 때.
- 밀도가 서로 다른 군집을 찾을 때.
- 이상치가 많은 데이터를 다룰 때.
🔹 4. PCA (Principal Component Analysis, 주성분 분석)
💡 PCA의 필요성
- 차원의 저주 (Curse of Dimensionality)
- 데이터 차원이 증가할수록 분석이 어려워짐 → 필요없는 차원을 제거할 필요가 있음.
- 다중공선성 문제 (Multicollinearity)
- 독립 변수들 간 상관관계가 높은 경우 → 모델 해석이 어려움.
➡ 해결책: PCA
데이터의 변동성(정보)을 최대한 보존하면서 더 적은 수의 변수(주성분)로 표현하는 차원 축소 기법.
🔹 5. PCA 개념
📌 PCA를 여행 가방 싸기로 이해해보자! 🎒
- 가장 중요한 물건 먼저 선택 → 데이터에서 가장 중요한 특징(주성분, Principal Component) 찾기
- 짐을 효율적으로 정리 → 데이터를 주성분 축으로 변환
- 가방이 너무 무거우면 불필요한 물건 제거 → 중요한 주성분 몇 개만 선택
🔹 6. PCA 주요 개념
- 공분산(Covariance)
→ 두 변수가 어떻게 함께 변화하는지를 측정.- 양의 공분산: 두 변수가 같은 방향으로 변화
- 음의 공분산: 한 변수가 증가할 때 다른 변수는 감소
- 고유값(Eigenvalue) & 고유벡터(Eigenvector)
- 고유벡터: 데이터의 주요 방향(주성분).
- 고유값: 각 방향(주성분)의 중요도를 나타냄.
- PCA 변환 과정
- 평균 중심화 (Centering): 평균을 빼서 데이터의 절대적인 크기를 제거.
- 공분산 행렬 계산: 변수 간의 관계를 분석.
- 고유값 & 고유벡터 계산: 주성분을 찾기 위해.
- 차원 선택: 가장 큰 고유값을 가진 몇 개의 주성분만 선택.
📌 PCA에서는 왜 상관계수가 아닌 공분산을 사용할까?
→ 공분산은 데이터의 실제 변동성을 보존하지만, 상관계수는 단위를 고려하지 않기 때문.
🔹 7. 핵심 요약
- DBSCAN(밀도 기반 군집화)
- K-means의 한계를 보완한 알고리즘.
- 밀도가 높은 영역을 군집으로 설정하고, 밀도가 낮은 영역은 노이즈(이상치)로 분류.
- 다양한 모양과 크기의 군집을 찾을 수 있음.
- PCA(주성분 분석)
- 차원의 저주 해결 & 다중공선성 문제 해결.
- 데이터를 주성분으로 변환해 정보 손실 없이 차원을 축소.
- 공분산 행렬을 이용해 고유값, 고유벡터를 계산하여 주성분을 선택.
📌 정리하면?
✅ 군집화할 때는 DBSCAN(K-means의 한계 보완)
✅ 차원을 줄이고 싶다면 PCA(중요한 정보만 유지하면서 차원 축소)
👉 실제 데이터를 다룰 때, 데이터 구조와 분석 목표에 맞춰 적절한 알고리즘을 선택하는 것이 중요합니다! 🚀