Dimensionality Reduction & PCA
고차원 데이터의 핵심 정보는 유지하면서 노이즈와 중복을 제거하여 차원을 축소하는 원리와, 주성분 분석(PCA)의 수학적 매커니즘을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
차원 축소 및 PCA(Dimensionality Reduction & PCA, DRP)는 정보의 홍수 속에서 데이터의 '본질'만을 골라내는 수학적 필터링 기술입니다.
고차원 데이터는 종종 쓸모없는 노이즈와 강한 상관관계에 의한 중복을 포함하고 있으며, 이는 컴퓨팅 비용과 모델의 복잡도를 물리적으로 증가시킵니다. 학습자는 데이터의 분산을 최대화하는 방향을 찾는 **주성분 분석(PCA)**과, 모든 행렬에 적용 가능한 강력한 도구인 **특이값 분해(SVD)**의 역학을 배웁니다. 이를 통해 수만 개의 특성을 가진 데이터를 핵심적인 몇 개의 축으로 압축하여 시각화하고, 고차원의 저주(Curse of Dimensionality)를 물리적으로 극복하는 능력을 갖춥니다.
2. Scope & Boundaries
In-Scope
- Basis of PCA: 공분산 행렬()의 구축과 고유분해를 통한 축 추출
- Variance Maximization: 정보 손실을 최소화하기 위한 '분산 보존'의 수리적 정의
- SVD Dynamics: 분해를 통한 저랭크 근사(Low-rank Approximation)
- Evaluation Metrics: 설명된 분산 비율(Explained Variance Ratio)과 스크리 플롯 분석
Out-of-Scope
- t-SNE, UMAP 등 비선형 차원 축소 기법의 시각화 툴 사용법 (11-01 FML 영역으로 위임)
- 특정 빅데이터 플랫폼의 분산 PCA 라이브러리 가이드 (데이터 엔지니어링 영역)
Boundaries
- DRP vs. Feature Selection: 특성 선택이 기존 특성 중 '일부'를 고르는 것이라면, DRP는 기존 특성들을 조합하여 '완전히 새로운 저차원 축'을 창조하는 물리적 변환입니다.
3. Counterexample
- 단순히 "차원을 줄여서 처리 속도를 높이는 것"은 DRP 학습이 아닙니다. 왜 특정 데이터셋에서 PCA를 수행하기 전 **데이터 정규화(Normalization)**를 하지 않으면 큰 스케일을 가진 변수가 주성분을 물리적으로 독식하게 되는지 지적할 수 있어야 하고, PCA가 선형 상관관계만 포착할 수 있다는 한계를 근거로 비선형 데이터에서의 실패 사례를 입증할 수 있어야 합니다.
4. Prerequisites
- Matrix Calculus & Eigendecomposition (Basic): 고윳값 분해와 공분산 행렬 이해가 필수입니다. (03-02 MCE)
- Vector Spaces & Linear Maps (Recommended): 기저 변환과 프로젝션(Projection) 개념이 권장됩니다. (03-01 VLM)
5. Learning Map
- Information Compression: 데이터를 압축하되 '의미 있는 변동성'을 남기는 기준을 세웁니다.
- Standardization Mechanics: 변수 간의 물리적 단위 차이를 극복하기 위한 전처리를 수행합니다.
- Axis Discovery: 공분산 행렬 분석을 통해 데이터가 가장 넓게 퍼진 '주성분 축'을 발견합니다.
- Energy Consolidation: 특이값(Singular Values)의 크기를 기준으로 하위 정보를 과감히 절삭합니다.
6. Learning Topics
Basic
Core: 주성분 분석의 원리와 공분산 (PCA Foundations)
- Why to Learn: 데이터의 변동성이 큰 방향이 곧 정보를 가장 많이 담고 있는 방향임을 수학적으로 이해하기 위함입니다.
- What to Learn:
- 공분산 행렬(): 변수 간의 관계를 수치화한 물리적 지도
- 평균 중심화(Mean Centering)의 기하학적 의미
- 제1주성분(PC1)부터 번째 주성분까지의 직교성 규칙
- How to Learn:
- 2차원 데이터를 1차원 직선으로 투영할 때, 투영된 점들의 분산이 최대가 되는 직선을 찾는 시각화 실습
- 공분산 행렬의 고유벡터가 왜 주성분의 방향이 되는지 유도 과정 복습
- Implement: 행렬 라이브러리 없이 순수 수식(공분산 계산 -> 고유분해)으로만 동작하는 미니 PCA 프로그램
Recommended
Core: 데이터 정규화와 스케일링 (Pre-processing Workflow)
- Why to Learn: 단위가 다른 데이터(예: 나이 vs 연봉)가 모델에 미치는 왜곡을 물리적으로 방지하기 위해서입니다.
- What to Learn:
- 표준화(Standardization): 평균 0, 표준편차 1로 만드는 물리적 좌표 이동
- 단위 독립성: 왜 스케일링 없이 PCA를 돌리면 결과가 무의미해지는지에 대한 수리적 증명
- 이상치(Outlier)가 PCA 축 결정에 미치는 파괴적 영향
- How to Learn:
- 스케일링 유무에 따른 PCA 결과물의 '설명된 분산' 수치를 직접 비교 실습
- 서로 다른 단위를 가진 5개 변수 데이터셋을 표준화하여 주성분 분포의 변화 관찰
- Implement: 데이터의 평균과 분산을 가두어 PCA 입력 규격을 보장하는 자동 전처리 파이프라인
Practical
Core: 특이값 분해와 저랭크 근사 (SVD Physics)
- Why to Learn: 정사각 행렬이 아닌 일반적인 모든 데이터 행렬을 압축하고 복원하기 위해서입니다.
- What to Learn:
- SVD 공식: 의 각 성분()이 갖는 기하학적 물리 의미
- 특이값()의 감쇠 패턴과 정보 보존량의 상관관계
- 데이터 압축(Compression) 및 노이즈 제거를 위한 행렬 근사 기술
- How to Learn:
- 이미지를 행렬로 간주하고, SVD를 통해 상위 몇 개의 특이값만 남겼을 때 이미지의 선명도 변화 관찰
- 추천 시스템에서 사용자-항목 행렬을 SVD로 분해하여 '잠재 요인'을 추출하는 원리 분석
- Implement: 대용량 행렬을 입력받아 지정된 에너지() 수준까지만 압축하여 리턴하는 SVD 압축기
Advanced
Core: 고차원의 저주와 차원의 선택 (Dimension Selection)
- Why to Learn: 너무 많은 특성이 모델의 성능을 오히려 떨어뜨리는 역설적 상황을 수학적으로 극복하기 위해서입니다.
- What to Learn:
- 데이터의 고차원 집중 현상: 거리 개념이 무너지는 물리적 이유
- Kaiser's Rule 및 엘보우(Elbow) 기법을 통한 최적 주성분 개수() 결정
- 정보 손실량(Error)과 연산 효율(Efficiency) 사이의 물리적 트레이드오프
- How to Learn:
- 주성분 개수를 늘려가며 원래 데이터로의 복원 오차(Reconstruction Error)가 줄어드는 기울기 분석
- 1000차원 이상의 텍스트 벡터를 PCA로 2~3차원으로 줄여 군집(Clustering) 가시성을 확보하는 연습
- Implement: 설명된 분산 비율이 유저가 설정한 임계치(예: 95%)를 넘는 최소 주성분 개수를 자동 계산하는 로직
7. Terminology
8. References
Primary
- [P1] CS2023 - DS/Linear Algebra — Applications in DR.
- [P4] DS-BoK - Data Analytics / Dimensionality Reduction — DS core skills.
Secondary
- [Pattern Recognition and Machine Learning] Christopher Bishop — Geometric view of PCA.
- [Python Data Science Handbook] Jake VanderPlas — Practical implementation of DR.
Industry
- [Netflix Prize SVD documentation] — Collaborative filtering with matrix decomposition.
- [Scikit-learn PCA User Guide] — Industry standard implementation patterns.
9. Final Checklist
Primary
- 공분산 행렬의 '고윳값'들의 총합이 데이터의 전체 분량(에너지)과 수학적으로 일치함을 입증할 수 있는 가? (P1)
- PCA의 첫 번째 주성분 축이 데이터의 재구성 오차(Reconstruction Error)를 최소화하는 물리적 축임을 논리적으로 증명 가능한가? (P1)
Secondary
- SVD 분해 시 도출되는 특이값()들이 0에 가까울수록 해당 데이터 영토를 '절삭(Truncation)'해도 되는 이유를 설명할 수 있는 가?
- PCA 결과물을 시각화했을 때, 주성분끼리 서로 교차하지 않고 90도(Orthogonal)를 유지해야 하는 물리적 이유를 소통 가능한가?
Industry
- 수천 개의 피쳐를 가진 고객 데이터를 모델에 입력하기 전, PCA를 통해 멀티콜리니어리티(Multicollinearity)를 물리적으로 제거하는 아키텍처를 설계할 수 있는 가? (SFIA)
- 고용량 대규모 로그 데이터 시각화 요구사항 발생 시, SVD를 이용한 실시간 차원 축소 파이프라인의 성능과 데이터 유실율을 정량적으로 평가할 수 있는 가?