세 기법(PCA, SVD, ICA)은 모두 데이터에 내재된 잠재적인 성분(component)이나 기저(basis)를 찾는다는 공통점이 있습니다. 하지만 무엇을 목표로 삼는지와 찾아내는 성분에 어떤 제약 조건을 거는지에서 근본적인 차이가 발생합니다.
기법 비교
1. PCA와 SVD: 통계 기법과 그것을 푸는 수학 도구
두 기법은 수학적으로 매우 밀접하여 종종 혼용되지만, 개념적인 출발점이 다릅니다.
- 관계: PCA는 통계적인 목표(분산 최대화)를 가진 분석 기법이며, SVD는 그 목표를 달성하기 위한 강력하고 안정적인 수학적 도구입니다. 실제로 데이터의 공분산 행렬을 직접 계산하여 PCA를 수행하는 것보다, 원본 데이터 행렬에 바로 SVD를 적용하여 주성분(Principal Components)을 찾는 방식이 수치적으로 더 안정적이어서 널리 사용됩니다.
- 차이점:
- 적용 대상: SVD는 모든 m x n 행렬에 적용할 수 있는 일반적인 행렬 분해 기법입니다. 반면 PCA는 데이터의 분산과 공분산을 다루는 통계적 개념으로, 이론적으로는 정방행렬인 공분산 행렬에 적용됩니다.
- 목적: SVD의 주 목적은 행렬 자체를 분해하여 행렬의 랭크를 파악하거나, 데이터를 압축하고 근사하는 것입니다. PCA의 명확한 목적은 데이터의 분산을 최대로 설명하는 새로운 축(주성분)을 찾아 차원을 축소하거나 특징을 추출하는 것입니다.
- 한 줄 요약: SVD는 더 일반적인 행렬 분해 도구이며, PCA는 SVD를 이용해 효율적으로 풀 수 있는 데이터 분석 문제라고 이해할 수 있습니다.
2. PCA와 ICA: '상관없는' 것과 '독립적인' 것의 차이
두 기법의 차이는 '상관관계가 없는(uncorrelated)'과 '독립(independent)'이라는 조건의 차이에서 비롯됩니다. '독립'이 '상관관계 없음'보다 훨씬 더 강력하고 까다로운 조건입니다.
- 성분의 조건 (직교성 vs. 독립성):
- PCA는 분산을 최대로 보존하기 위해 찾아낸 주성분들이 반드시 서로 직교(orthogonal)해야 한다는 강력한 제약을 갖습니다.
- ICA의 목표는 통계적 독립성이므로, 분리해낸 독립 성분(Independent Components)들이 서로 직교할 필요가 없습니다. 실제 데이터의 기저가 직교하지 않을 때 ICA가 더 의미 있는 결과를 도출할 수 있습니다.
- 핵심 가정 (정규분포 vs. 비정규분포):
- PCA는 데이터의 2차 통계량인 분산을 중요하게 다루므로, 데이터가 정규분포(Gaussian distribution)에 가깝다고 가정할 때 가장 잘 동작합니다. 정규분포 데이터에서는 상관관계가 없는 것이 독립과 동일하기 때문입니다.
- ICA는 반대로 원본 신호(성분)들이 비정규분포(Non-Gaussian distribution)를 따른다고 가정합니다. 중심극한정리에 따르면 독립적인 신호들이 합쳐질수록 정규분포에 가까워지는데, ICA는 이 과정을 역으로 추적하여 혼합된 신호(데이터)에서 비정규성이 최대가 되는 방향을 찾아 원본 신호를 분리해냅니다.
- 한 줄 요약: 데이터의 전체적인 '흩어짐'(분산)을 기반으로 정보를 요약하고 싶다면 PCA를, 여러 독립적인 신호가 뒤섞인 상태에서 원래의 개별 신호를 복원하고 싶다면 ICA를 사용합니다.
언제 무엇을 사용해야 할까? (Use Case)
- PCA (주성분 분석)를 사용할 때:
- 범용적인 차원 축소: 머신러닝 모델의 입력으로 사용하기 전, 변수의 수를 줄여 과적합을 방지하고 싶을 때.
- 노이즈 제거: 데이터의 분산이 가장 큰 방향(주성분)은 중요한 정보를, 분산이 작은 방향은 노이즈를 포함할 가능성이 높다는 점을 이용해 노이즈를 필터링하고 싶을 때.
- 시각화: 고차원 데이터를 2D 또는 3D로 축소하여 데이터의 분포를 시각적으로 확인하고 싶을 때.
- SVD (특이값 분해)를 사용할 때:
- 데이터 압축: 이미지 파일 등에서 중요도가 낮은 특이값을 제거하여 원본을 근사한 형태로 용량을 줄일 때.
- 추천 시스템: 사용자-아이템 행렬을 분해하여 사용자와 아이템의 잠재 요인(Latent Factor)을 찾아내고, 이를 통해 평점을 예측하거나 아이템을 추천할 때 (Matrix Factorization).
- PCA 계산: 위에서 설명했듯이, 수치적으로 안정적인 PCA 계산이 필요할 때 내부적으로 사용.
- ICA (독립 성분 분석)를 사용할 때:
- 신호 분리 (Source Separation): '칵테일 파티 문제'처럼 여러 음성이 섞인 오디오에서 개별 음성을 분리하거나, 뇌전도(EEG)나 기능적 MRI(fMRI) 같은 생체 신호에서 노이즈나 다른 신호원을 분리할 때.
- 특징 추출: 금융 데이터에서 시장 전체의 움직임, 특정 산업군의 움직임 등 서로 독립적인 영향을 주는 요소를 추출하고 싶을 때.
'데이터 분석 > 차원 축소' 카테고리의 다른 글
| 데이터 분석을 위한 7가지 전통적인 차원 축소 기법 (0) | 2025.09.29 |
|---|