#개념

주성분 분석(Principal Component Analysis, PCA)은 서로 상관된 여러 변수로 이루어진 데이터를 분산이 큰 순서대로 정렬된 서로 직교하는 새로운 변수, 즉 주성분(Principal Component)으로 변환하는 통계적 차원 축소(Dimensionality Reduction) 기법이다. 1901년 Karl Pearson이 데이터 점에 가장 잘 맞는 직선과 평면을 찾는 문제로 처음 제안했고, 1933년 Harold Hotelling이 분산 최대화 관점에서 현재의 형태로 정립했다. PCA는 정답 레이블 없이 데이터 자체의 구조만 이용하는 비지도 학습(Unsupervised Learning)에 속하며, 첫 번째 주성분은 데이터의 분산이 가장 큰 방향, 두 번째 주성분은 첫 번째와 직교하면서 남은 분산이 가장 큰 방향으로 정의된다. 이렇게 얻은 주성분 중 앞의 $k$개만 남기면 정보 손실을 최소화하면서 $p$차원 데이터를 $k$차원으로 압축할 수 있으며, 새 변수들은 서로 상관관계가 없어 이후 분석이 단순해진다.
수학적으로 $n$개의 표본과 $p$개의 변수를 가진 데이터 행렬 $X$의 각 열에서 평균을 빼 중심화한 뒤, 공분산 행렬 $C = \frac{1}{n-1}X^{\top}X$를 계산한다. $C$는 대칭 양반정치 행렬이므로 고유값 분해 $C = V\Lambda V^{\top}$가 항상 가능하며, 고유벡터(Eigenvector) $v_1, v_2, \ldots, v_p$가 주성분의 방향, 대응하는 고유값 $\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_p \geq 0$이 각 주성분 방향의 분산이 된다. 이는 단위 벡터 $w$에 대해 투영된 데이터의 분산 $w^{\top}Cw$를 최대화하는 제약 최적화 문제 $\max_{\|w\|=1} w^{\top}Cw$의 해가 가장 큰 고유값의 고유벡터라는 사실에서 나온다. 동일하게 PCA는 데이터를 $k$차원 부분 공간에 투영했다가 복원했을 때 재구성 오차 $\|X - XW W^{\top}\|_F^2$를 최소화하는 문제로도 해석할 수 있으며, 두 관점은 같은 해를 준다. 실제 구현에서는 공분산 행렬을 명시적으로 만들지 않고 중심화된 $X$에 특이값 분해(Singular Value Decomposition, SVD) $X = U\Sigma V^{\top}$를 적용하는 방식이 수치적으로 안정적이며, 이때 $V$의 열이 주성분 방향이고 특이값 $\sigma_i$는 $\lambda_i = \sigma_i^2/(n-1)$로 고유값과 연결된다. 변수가 수만 개에 이르는 대규모 데이터에는 상위 $k$개 성분만 근사하는 무작위 SVD(randomized SVD)나 데이터를 나누어 처리하는 점진적 PCA가 사용된다. 변환된 좌표 $Z = XV_k$를 주성분 점수(score)라 부르고, $V_k$의 원소는 각 원래 변수가 주성분에 기여하는 정도인 적재값(loading)이라 부르며 주성분의 의미를 해석하는 단서가 된다.
주성분을 몇 개 남길지는 설명 분산 비율(Explained Variance Ratio)을 기준으로 결정한다. $i$번째 주성분의 설명 분산 비율은 $\lambda_i / \sum_{j=1}^{p}\lambda_j$이며, 이를 앞에서부터 누적한 값이 전체 분산의 90% 또는 95%를 넘는 최소 $k$를 선택하는 방식이 일반적이다. 고유값을 크기 순으로 그린 스크리 도표(scree plot)에서 기울기가 급격히 완만해지는 팔꿈치 지점을 찾거나, 상관 행렬을 사용할 때 고유값이 1보다 큰 성분만 남기는 카이저 기준, 교차 검증으로 재구성 오차를 평가하는 방법도 있다. 이 과정에서 반드시 고려해야 할 것이 표준화(Standardization)의 필요성이다. PCA는 분산이 큰 방향을 찾기 때문에 변수의 측정 단위나 스케일에 민감하다. 예를 들어 연 소득(원 단위)과 나이(년 단위)를 그대로 사용하면 값의 범위가 훨씬 큰 소득이 첫 번째 주성분을 거의 독점하게 되어 나이의 정보는 무시된다. 따라서 변수의 단위가 서로 다르거나 비교 가능하지 않을 때는 각 변수를 평균 0, 표준편차 1로 표준화한 뒤 PCA를 수행하며, 이는 공분산 행렬 대신 상관 행렬의 고유벡터를 구하는 것과 같다. 반대로 모든 변수가 같은 단위(예: 이미지의 픽셀 값)이고 분산의 차이 자체가 의미를 가진다면 표준화 없이 공분산 행렬을 그대로 사용하는 편이 적절하다.
PCA는 계산이 빠르고 해가 유일하며 해석이 명확하지만, 선형 변환이라는 근본적인 한계를 가진다. 데이터가 나선형 곡면이나 스위스 롤처럼 굽은 저차원 다양체 위에 놓여 있으면, 어떤 선형 투영도 그 구조를 펼쳐 낼 수 없다. 이를 극복한 커널 주성분 분석(Kernel PCA)은 데이터를 커널 함수가 암묵적으로 정의하는 고차원 특징 공간으로 사상한 뒤 그 공간에서 PCA를 수행하며, 커널 트릭 덕분에 사상을 명시적으로 계산하지 않고 $n \times n$ 커널 행렬의 고유값 분해만으로 비선형 주성분을 얻는다. 다만 커널 선택과 하이퍼파라미터(Hyperparameter) 조정이 필요하고 표본 수에 대해 계산량이 제곱 이상으로 늘어난다. 시각화 목적으로 널리 쓰이는 t-SNE와 UMAP은 PCA와 성격이 다르다. PCA가 전역적인 분산 구조와 큰 거리를 보존하는 반면, t-SNE는 고차원과 저차원 공간에서 이웃 점 사이의 조건부 확률 분포를 맞추어 국소적인 군집 구조를 드러내는 데 특화되어 있고, UMAP은 다양체 학습과 위상 이론에 기반해 국소 구조를 보존하면서 t-SNE보다 빠르고 전역 구조를 상대적으로 더 잘 유지한다. 그러나 두 방법은 확률적이라 실행마다 결과가 달라질 수 있고, 새 데이터를 투영하는 명시적 변환이 없거나 제한적이며, 축과 군집 간 거리에 정량적 의미를 부여하기 어렵다. 이 때문에 실무에서는 먼저 PCA로 50차원 정도까지 노이즈를 걸러낸 뒤 t-SNE나 UMAP을 적용하는 조합이 권장된다.
PCA의 활용은 크게 세 갈래로 나뉜다. 첫째, 고차원 데이터를 2~3개의 주성분으로 투영하여 탐색적 데이터 분석(Exploratory Data Analysis) 단계에서 군집이나 이상치를 시각적으로 파악한다. 둘째, 상위 주성분만 남기고 재구성하면 작은 고유값에 해당하는 방향의 변동이 제거되므로 신호와 무관한 무작위 잡음을 줄이는 노이즈 제거(Denoising) 효과가 있으며, 이미지나 센서 신호의 압축에 응용된다. 셋째, 수백 개의 상관된 변수를 소수의 비상관 특징으로 압축하는 특징 엔지니어링(Feature Engineering)으로 활용하여, 회귀(Regression)에서 다중공선성을 완화하고 머신러닝(Machine Learning) 모델의 학습 속도를 높이며 과대적합(Overfitting) 위험을 줄인다. 대표적인 사례로 얼굴 이미지의 주성분인 고유 얼굴(eigenface), 유전체 데이터에서 집단 구조를 드러내는 분석, 금융 수익률 데이터에서 시장 요인을 추출하는 분석이 있다. PCA를 적용할 때는 훈련 데이터로만 평균과 주성분을 추정한 뒤 검증·시험 데이터에 동일한 변환을 적용해야 정보 누출을 막을 수 있으며, 주성분은 여러 변수의 선형 결합이므로 원래 변수 단위의 직관적 해석력이 떨어진다는 점, 분산이 작은 방향에도 분류에 중요한 정보가 있을 수 있어 지도 학습의 성능 향상을 보장하지는 않는다는 점을 유념해야 한다. 결론적으로 PCA는 선형대수의 고유값 분해라는 간결한 도구로 데이터의 핵심 구조를 드러내는 가장 기본적이면서도 여전히 널리 쓰이는 차원 축소 방법이다.

#관련 용어

차원 축소
고차원 데이터의 구조를 보존하면서 더 적은 차원으로 변환하는 기법
공분산 행렬
변수 쌍마다 함께 변하는 정도를 원소로 갖는 대칭 행렬로, 주성분 방향을 구하는 출발점
고유벡터
행렬을 곱해도 방향이 바뀌지 않고 크기만 고유값 배로 변하는 벡터
특이값 분해(SVD)
임의의 행렬을 두 직교 행렬과 대각 행렬의 곱으로 분해하는 방법으로, PCA의 수치적으로 안정적인 계산 수단
설명 분산 비율
각 주성분이 전체 분산에서 차지하는 비율로, 남길 주성분 수를 정하는 기준
비지도 학습
정답 레이블 없이 데이터의 구조와 패턴을 학습하는 머신러닝 방식

#직무 연관도

DA
Data Analyst
높음
수십 개의 지표를 소수의 종합 지수로 요약하고 고객·상품 데이터를 2차원으로 시각화하여 군집과 이상치를 파악하는 데 직접 활용된다
DS
Data Scientist
밀접
고차원 데이터의 구조 탐색, 특징 압축, 노이즈 제거와 모델 전처리에 가장 기본적으로 사용하는 차원 축소 기법
DE
Data Engineer
보통
특징 저장 공간과 추론 비용을 줄이고 임베딩 벡터의 차원을 압축하는 데이터 파이프라인 구성에 활용된다

#사용 사례

금융의료제조전자상거래통신바이오
개요
주성분 분석은 고차원 데이터의 시각화와 탐색, 상관된 변수의 압축을 통한 모델 학습 효율화, 이미지·신호의 노이즈 제거와 압축, 얼굴 인식, 유전체 집단 구조 분석, 금융 포트폴리오의 위험 요인 추출, 공정 이상 탐지 등에 폭넓게 활용된다.
사례
반도체 제조 공정에서 수백 개의 센서가 기록한 온도·압력·유량 데이터를 표준화한 뒤 PCA로 소수의 주성분에 투영하면, 정상 공정의 분포에서 벗어난 웨이퍼 로트를 주성분 점수와 재구성 오차로 조기에 탐지할 수 있고, 적재값을 통해 어떤 센서가 이상에 기여했는지 추적할 수 있다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.