주성분 분석

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

통계학에서 주성분 분석(主成分分析), 혹은 PCA(Principal component analysis)는 데이터 집합을 분석하는 기법 가운데 하나이다. 주성분 분석은 데이터를 한개의 축으로 사상시켰을 때 그 분산이 가장 커지는 축이 첫 번째 좌표축으로 오고, 두 번째로 커지는 축이 두 번째… 와 같은 방법으로 차례로 놓이도록 새로운 좌표계로 데이터를 선형 변환한다. 이와 같이 각각의 축에 데이터의 "가장 중요한" 성분을 위치시킴으로써 여러가지 응용이 가능하다.

주성분 분석은 카리 카루넨미셸 뢰브의 이름을 따서 이산 카루넨-뢰브 변환(Karhunen-Loève transform 또는 KLT), 또는 해롤드 호텔링의 이름을 따서 호텔링 변환이라 불리기도 한다. 주성분 분석은 가장 큰 분산을 갖는 부분공간(subspace)을 보존하는 최적의 선형 변환이라는 특징을 갖는다. 그러나 이산 코사인 변환과 같은 다른 방법에 비해 더 많은 계산시간을 요구하는 단점이 있다. 다른 선형 변환과 달리 주성분 분석은 정해진 기저 벡터를 갖지 않으며, 기저 벡터는 데이터의 특성에 따라 달라진다.

데이터 집합의 전체 평균이 0이라고 가정하면, (아닐 경우 평균을 데이터 집합에서 뺀다) 데이터 집합 x의 주성분 w1은 다음과 같이 정의된다.

\mathbf{w}_1
 = \arg\max_{\Vert \mathbf{w} \Vert = 1} E\left\{ \left( \mathbf{w}^T \mathbf{x}\right)^2 \right\}

(arg max는 함수f(x)의 값을 최대로 만드는 x를 가리킨다.)

k-1개의 주성분이 이미 주어져 있을 때 k번째 주성분은 앞의 k-1개 주성분을 뺌으로써 찾을 수 있다 :

\mathbf{\hat{x}}_{k - 1}
 = \mathbf{x} -
 \sum_{i = 1}^{k - 1}
 \mathbf{w}_i \mathbf{w}_i^T \mathbf{x}

그리고 이 값을 데이터 집합에서 뺀 다음 주성분을 새로 찾는다.

\mathbf{w}_k
 = \arg\max_{\Vert \mathbf{w} \Vert = 1} E\left\{
 \left( \mathbf{w}^T \mathbf{\hat{x}}_{k - 1}
 \right)^2 \right\}.

따라서 카루엔-뢰브 변환은 데이터 행렬 X특이값 분해를 찾은 다음,

\mathbf{X}=\mathbf{W}\mathbf{\Sigma}\mathbf{V}^T,

XL개의 특이 벡터, WL로 정의된 부분공간으로 사상시켜 부분 데이터 집합 Y를 찾는 것과 같다.

\mathbf{Y}=\mathbf{W_L}^T\mathbf{X} = \mathbf{\Sigma_L}\mathbf{V_L}^T

X의 특이값 벡터 행렬 W는 공분산 C=XXT고유벡터 행렬 W와 동일하다.

\mathbf{X}\mathbf{X}^T = \mathbf{W}\mathbf{\Sigma}^2\mathbf{W}^T

가장 큰 고윳값을 갖는 고유벡터는 데이터 집합에서 가장 강한 상관성을 갖는 차원에 대응된다.