← Back to Blog

[Data Analysis] PCA

artificial intelligence > machine learning

2026-07-043 min read

#ai #machine-learning #data-analysis #pca

PCA 목적

고차원 데이터의 정보를 최대한 유지하면서 저차원 공간으로 투영한다.

핵심 아이디어는 다음과 같다.

데이터 분산(Variance) 최대 방향 탐색

분산이 크다는 것은 데이터가 더 넓게 퍼져 있다는 의미이다.

따라서 분산이 최대가 되는 방향만 남기면 정보 손실을 최소화할 수 있다.


데이터 표현

데이터 개수를 NN, Feature 개수를 dd라고 가정한다.

데이터 행렬은 다음과 같다.

XRN×dX \in \mathbb{R}^{N \times d}

각 행은 하나의 데이터, 각 열은 하나의 Feature를 의미한다.

먼저 평균 제거(Centering)를 수행한다.

XXμX \leftarrow X - \mu

평균 제거의 목적은 다음과 같다.

모든 데이터의 중심을 원점으로 이동한다.

공분산 계산 기준을 통일할 수 있다.


차원 축소 문제

100차원 데이터를 1차원으로 줄인다고 가정한다.

새로운 축을 다음과 같이 둔다.

ww

선택한다.

모든 데이터를 해당 방향으로 투영한다.

z=Xwz = Xw

여기서 문제 하나가 존재한다.

어떤 방향을 선택해야 정보를 가장 많이 유지할 수 있을까?


분산 최대화

PCA에서 정보량은 분산으로 해석한다.

따라서 목표는 다음과 같다.

maxwVar(Xw)\max_w \operatorname{Var}(Xw)

평균 제거가 완료된 상태라면 다음을 만족한다.

E[X]=0E[X]=0

분산을 전개하면 다음과 같다.

Var(Xw)=E[(Xw)T(Xw)]\operatorname{Var}(Xw) = E[(Xw)^T(Xw)] =E[wTXTXw]= E[w^TX^TXw] =wTE[XTX]w= w^TE[X^TX]w

여기서 다음 행렬은 공분산 행렬을 의미한다.

C=1NXTXC=\frac{1}{N}X^TX

따라서 다음과 같이 정리할 수 있다.

Var(Xw)=wTCw\operatorname{Var}(Xw) = w^TCw

결국 목적 함수는 다음과 같다.

maxwwTCw\max_w w^TCw

제약조건

문제 하나가 존재한다.

ww

크기를 계속 키우면 다음 값이 무한히 증가한다.

wTCww^TCw

의미 없는 해가 발생한다.

따라서 다음 제약을 추가한다.

wTw=1w^Tw=1

최종 문제는 다음과 같다.

maxwwTCw\max_w w^TCw

subject to

wTw=1w^Tw=1

라그랑주 승수법

라그랑주 함수는 다음과 같다.

L=wTCwλ(wTw1)L = w^TCw - \lambda(w^Tw-1)

미분하면 다음과 같다.

Lw=2Cw2λw=0\frac{\partial L}{\partial w} = 2Cw - 2\lambda w = 0

정리하면 다음과 같다.

Cw=λwCw=\lambda w

이는 바로 **고유값 문제(Eigenvalue Problem)**이다.


왜 고유벡터 선택?

양변에 다음 값을 곱한다.

wTw^T

그러면 다음과 같다.

wTCw=λwTww^TCw = \lambda w^Tw

제약조건은 다음과 같다.

wTw=1w^Tw=1

이를 대입하면 다음과 같다.

wTCw=λw^TCw=\lambda

좌변은 다음을 의미한다.

투영 후 분산

우변은 다음을 의미한다.

고유값

즉, 다음과 같이 해석할 수 있다.

고유값 = 해당 방향 분산

가장 큰 고유값에 대응하는 고유벡터를 선택한다.

이 벡터가 첫 번째 Principal Component이다.

두 번째로 큰 고유값에 대응하는 고유벡터도 선택한다.

이 벡터가 두 번째 Principal Component이다.


최종 차원 축소

상위 kk개 고유벡터를 선택한다.

W=[w1,w2,,wk]W= [w_1,w_2,\cdots,w_k]

차원 축소 결과는 다음과 같다.

Y=XWY=XW

즉, 다음 원래 좌표계를

XX

다음 새로운 좌표계로 변환한다.

YY

PCA의 본질은 다음과 같다.

분산 최대 직교기저(Orthogonal Basis) 탐색

또는

데이터 분산 최대 방향으로 좌표계 회전(Rotation)


SVD 관계

실제 구현에서는 대부분 Eigen Decomposition 대신 SVD를 사용한다.

X=UΣVTX=U\Sigma V^T

여기서 다음 행렬의 열벡터가 Principal Component와 같다.

VV

이유는 다음과 같다.

XTX=VΣ2VTX^TX = V\Sigma^2V^T

이는 공분산 행렬의 고유분해 결과와 동일하기 때문이다.