📘 주성분 분석(PCA) & 특이값 분해(SVD)
1️⃣ PCA (Principal Component Analysis): 개요 및 목적
🔹 정의
- 고차원 데이터를 저차원으로 정보 손실 최소화하며 축소하는 기법.
- 기존 변수의 선형 조합으로 구성된 새로운 비상관 변수 집합(주성분) 생성.
🔹 주요 목적
차원 축소 |
많은 변수 → 핵심 정보만 담은 적은 수의 주성분으로 |
시각화 용이성 |
2D/3D로 축소해 패턴 탐색, 클러스터 확인 등 |
노이즈 제거 |
정보가 적은 변수 제거 → 데이터 정제 효과 |
분석 효율 향상 |
모델 복잡도 감소, 계산량 축소 |
상관성 제거 |
상호 상관된 변수들을 직교 주성분으로 전환 |
2️⃣ PCA 적용 절차: 단계별 정리
- 데이터 정규화 (표준화)
- 변수 단위/분포 불일치 시 필수 (z-score 방식)
- 평균 0, 표준편차 1로 변환
- 공분산 행렬 계산
- 변수 간 분산 및 공분산 구조 파악
- 정방 행렬, 대칭
- 고유값 & 고유벡터 계산
- 공분산 행렬의 고유분해
- 고유값 → 설명력
고유벡터 → 주성분 방향
- 주성분 선택
- 고유값 큰 순으로 누적 설명력 기준 선택 (예: 85% 이상 설명하는 주성분)
- 주성분으로 데이터 변환 (투영)
- 기존 데이터를 주성분 축으로 재표현
- 결과: 차원 축소된 데이터셋
3️⃣ PCA에서 주요 개념 정리
고유값 (λ) |
주성분이 설명하는 분산의 크기 |
고유벡터 |
주성분 축의 방향 |
설명력 (Explained Variance) |
각 주성분이 전체 분산에서 차지하는 비율 |
누적 설명력 |
여러 주성분이 합쳐서 설명하는 비율 |
비상관성 (Orthogonality) |
주성분들 간 상호 독립 → 회귀 분석 등에서 다중공선성 해소 |
4️⃣ SVD (Singular Value Decomposition): 개요 및 수학적 기반
🔹 정의
- 행렬 A를 세 개의 행렬 곱으로 분해하는 선형대수 기법
A = U × Σ × Vᵗ
🔹 구성
U |
m×m 직교 행렬 |
원본 데이터 좌측 방향 정보 |
Σ (시그마) |
m×n 대각 행렬 |
축별 분산(정보) 크기: 특이값 |
Vᵗ |
n×n 직교 행렬 |
원본 데이터 우측 방향 정보 |
🔹 핵심 특징
- 고차원 행렬을 저차원 구조로 재표현
- 특이값은 정보의 밀집도를 나타내며, 일부만 사용해도 전체 구조 근사 가능
5️⃣ PCA와 SVD 관계 및 차이점
PCA SVD
접근 방식 |
통계적 (분산 기반) |
수치해석적 (행렬 분해 기반) |
적용 대상 |
수치형 데이터 |
임의 행렬 (정방X도 가능) |
구현 방식 |
공분산 행렬 고유분해 |
행렬 자체를 분해 |
목적 |
주성분 추출, 시각화, 다중공선성 제거 |
차원 축소, 데이터 근사, 압축 |
공통점 |
설명력 높은 축 선택, 노이즈 제거 |
주축만 선택해도 정보 유지 가능 |
6️⃣ 실무 적용 예시
📊 예: 고객 데이터 시각화
- 나이, 소득, 구매횟수 등 변수 다수 → 2D PCA
- 시각화 통해 클러스터 분포 확인
🛍 추천 시스템
- 사용자 × 아이템 행렬 → SVD 분해
- 적은 수의 특이값만 사용하여 유사도 기반 추천 가능
🖼 이미지 압축
- 이미지 → 행렬 표현 → SVD 분해
- 일부 특이값만으로 복원해 저장 공간 절감
7️⃣ 시험 대비 기출 포인트 요약
PCA는 정규분포 가정 여부 |
❌ 필요 없음 |
주성분 선택 기준 |
✅ 고유값 큰 순 |
설명력, 누적 설명력 개념 |
✅ % 해석 가능해야 함 |
PCA = 차원 축소 vs 정제 |
❌ 정제는 아님 |
SVD 정방행렬 한정 여부 |
❌ 아님, 임의 행렬 가능 |
SVD 구성 요소 |
✅ 직교 + 대각 |
차원 축소 효과 |
✅ 분석 효율 향상, 노이즈 제거 |
8️⃣ 핵심 정리 암기 문장
📌 PCA는 공분산을 고유분해해 ‘방향’을 찾고,
📌 SVD는 데이터를 직교와 대각으로 ‘분해’해 정보를 압축한다.
📌 둘 다 정보는 유지, 차원은 축소, 분석은 간결!