Programming

차원 축소(Dimension Reduction) 완전 정리 요약PCA · LDA · SVD · Truncated SVD · NMF

Lucas.Kim 2026. 1. 11. 06:22
반응형

1. 왜 차원 축소가 필요한가? (차원의 저주)

고차원 데이터(수십~수천 개 피처)는 다음과 같은 문제를 유발합니다.

🔹 고차원 데이터의 핵심 문제

  • 데이터 희소성 증가
    → 차원이 커질수록 데이터 포인트 간 거리가 급격히 멀어짐
  • 거리 기반 알고리즘 성능 저하
    → KNN, K-means, SVM 등에서 의미 있는 거리 계산이 어려워짐
  • 다중 공선성 문제
    → 선형 회귀 계열 모델에서 계수 불안정, 예측 성능 저하
  • 학습 시간 증가 & 과적합 위험

👉 이를 해결하기 위해 중요한 정보는 유지하면서 차원을 줄이는 기법이 바로 차원 축소입니다.

2. 차원 축소의 두 가지 접근 방식

① 피처 선택 (Feature Selection)

  • 불필요하거나 종속성이 강한 피처 제거
  • 기존 피처 중 일부만 선택
  • 예: 상관관계 높은 변수 제거

② 피처 추출 (Feature Extraction) ⭐

  • 기존 피처들을 새로운 저차원 공간의 피처로 재구성
  • 원본 피처의 정보를 압축해 잠재 변수(Latent Feature) 생성
  • PCA, LDA, SVD, NMF 등이 여기에 해당

👉 우리가 다룬 대부분의 기법은 피처 추출 방식

3. PCA (Principal Component Analysis)

✔ 핵심 개

  • 데이터 분산(변동성)을 최대한 보존하는 방향으로 차원 축소
  • 클래스 정보 사용하지 않음 (비지도 학습)

✔ 동작 원리

  1. 데이터 표준화 (평균 0, 분산 1)
  2. 공분산 행렬 계산
  3. 고유값 분해
  4. 고유값이 큰 순서대로 주성분 선택
  5. 해당 축으로 데이터 투영

✔ 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는 데이터 정보를 가장 잘 보존하는 방향(분산 최대)으로
새로운 축을 생성하여 차원을 축소합니다.


🔚 마무리 정리 한 줄 요약

차원 축소는 단순한 압축이 아니라,
데이터를 더 잘 설명하는 잠재 구조를 찾아내는 과정이다.

반응형