
1. 왜 차원 축소가 필요한가? (차원의 저주)
고차원 데이터(수십~수천 개 피처)는 다음과 같은 문제를 유발합니다.
🔹 고차원 데이터의 핵심 문제
- 데이터 희소성 증가
→ 차원이 커질수록 데이터 포인트 간 거리가 급격히 멀어짐 - 거리 기반 알고리즘 성능 저하
→ KNN, K-means, SVM 등에서 의미 있는 거리 계산이 어려워짐 - 다중 공선성 문제
→ 선형 회귀 계열 모델에서 계수 불안정, 예측 성능 저하 - 학습 시간 증가 & 과적합 위험
👉 이를 해결하기 위해 중요한 정보는 유지하면서 차원을 줄이는 기법이 바로 차원 축소입니다.
2. 차원 축소의 두 가지 접근 방식
① 피처 선택 (Feature Selection)
- 불필요하거나 종속성이 강한 피처 제거
- 기존 피처 중 일부만 선택
- 예: 상관관계 높은 변수 제거
② 피처 추출 (Feature Extraction) ⭐
- 기존 피처들을 새로운 저차원 공간의 피처로 재구성
- 원본 피처의 정보를 압축해 잠재 변수(Latent Feature) 생성
- PCA, LDA, SVD, NMF 등이 여기에 해당
👉 우리가 다룬 대부분의 기법은 피처 추출 방식
3. PCA (Principal Component Analysis)
✔ 핵심 개
- 데이터 분산(변동성)을 최대한 보존하는 방향으로 차원 축소
- 클래스 정보 사용하지 않음 (비지도 학습)
✔ 동작 원리
- 데이터 표준화 (평균 0, 분산 1)
- 공분산 행렬 계산
- 고유값 분해
- 고유값이 큰 순서대로 주성분 선택
- 해당 축으로 데이터 투영
✔ explained_variance_ratio_ 의미
[0.72, 0.23]
→ 첫 번째 주성분이 전체 분산의 72%
→ 두 번째 주성분이 23%
→ 2개 주성분으로 약 95% 정보 보존
✔ 특징 요약
- 시각화에 매우 유용
- 분류 성능은 다소 하락할 수 있음
- 데이터 구조 이해 목적에 적합
4. LDA (Linear Discriminant Analysis)
✔ PCA와의 가장 큰 차이
구분PCALDA
| 구분 | PCA | LDA |
| 클래스 정보 | 사용 ❌ | 사용 ⭕ |
| 학습 유형 | 비지도 | 지도 |
| 목적 | 분산 최대화 | 클래스 분리 최대화 |
✔ 핵심 아이디어
- 같은 클래스는 가깝게
- 다른 클래스는 멀게
- 클래스 간 분산 / 클래스 내 분산 비율 최대화
👉 분류 문제에서 차원 축소 + 성능 유지에 매우 효과적
5. SVD (Singular Value Decomposition)
✔ 핵심 개념
모든 행렬 A=UΣVT 는 다음과 같이 분해 가능:
- U: 좌측 특이 벡터
- Σ(Sigma): 특이값 (정보의 크기)
- Vᵀ: 우측 특이 벡터
✔ PCA와의 관계
- PCA는 공분산 행렬 기반
- SVD는 원본 행렬 직접 분해
- 실제 구현에서는 PCA 내부에서도 SVD 사용
6. Truncated SVD
✔ 왜 필요할까?
- 전체 SVD는 계산 비용이 큼
- 상위 K개의 특이값만 사용하여 근사
✔ 장점
- 희소 행렬에 적합
- 텍스트 데이터, 추천 시스템에 매우 유용
- StandardScaler 없이도 사용 가능
7. NMF (Non-negative Matrix Factorization)
✔ 핵심 특징
- 모든 행렬 원소가 0 이상
- 음수 데이터 ❌
✔ 장점
- 해석력이 매우 뛰어남
- “부품 기반 표현”
- 토픽 모델링, 이미지 분해에 적합
8. 실무/연구에서의 위치 (파이프라인 관점)
Raw Data
↓
Scaling / Encoding / Imputation
↓
차원 축소 (PCA, SVD, LDA, NMF)
↓
모델 학습 / 군집 / 이상치 탐지
👉 모델 앞단 전처리 단계의 핵심 요소
9. 핵심 개념 문제 + 해설
❓ 문제 1
NMF의 가장 중요한 특징은?
✅ 정답: 분해된 행렬의 요소가 모두 비음수
📘 해설
NMF는 원본 행렬을 두 개의 비음수 행렬로 분해합니다.
이로 인해 결과 해석이 직관적이며 텍스트/이미지 분석에 유리합니다.
❓ 문제 2
PCA와 LDA의 가장 큰 차이점은?
✅ 정답: 학습 시 클래스 정보 사용 여부
📘 해설
- PCA: 분산만 고려 (비지도)
- LDA: 클래스 분리 고려 (지도)
❓ 문제 3
고차원 데이터의 대표적인 문제는?
✅ 정답: 데이터 희소성 증가
📘 해설
차원이 증가할수록 데이터 포인트 간 거리가 멀어지고
거리 기반 알고리즘 성능이 급격히 저하됩니다.
이를 차원의 저주라고 부릅니다.
❓ 문제 4
SVD가 분해하는 세 행렬은?
✅ 정답: U, Sigma, Vᵀ
📘 해설
SVD는 행렬을 좌측 특이 벡터, 특이값, 우측 특이 벡터로 분해하는 기법입니다.
❓ 문제 5
PCA의 주된 목표는?
✅ 정답: 데이터의 분산 최대화
📘 해설
PCA는 데이터 정보를 가장 잘 보존하는 방향(분산 최대)으로
새로운 축을 생성하여 차원을 축소합니다.
🔚 마무리 정리 한 줄 요약
차원 축소는 단순한 압축이 아니라,
데이터를 더 잘 설명하는 잠재 구조를 찾아내는 과정이다.
'Programming' 카테고리의 다른 글
| K-Means 군집화 실험을 위한 인공 데이터 생성과 중심점 시각화 (0) | 2026.01.12 |
|---|---|
| 군집화(Clustering) 개념과 K-Means 알고리즘 실습 정리 (0) | 2026.01.12 |
| SVD(Singular Value Decomposition, 특이값 분해) 이해하기 (0) | 2026.01.11 |
| LDA(Linear Discriminant Analysis) – 분류를 위한 차원 축소 기법 (1) | 2026.01.11 |
| 신용카드 데이터 세트 PCA 변환과 분류 성능 비교 (1) | 2026.01.11 |