PCA는 기존의 변수를 일차 결합하여 서로 선형 연관성이 없는 새로운 변수, 즉 주성분(principal component, PC)들을 만들어 낸다. 이때 계산은 주로 행렬의 고윳값 분해 또는 특이값 분해(SVD)를 사용한다. 첫 번째 주성분 PC1이 원 데이터의 분포를 가장 많이 보존하고, 두 번째 주성분 PC2가 그 다음으로 원 데이터의 분포를 많이 보존한다. 예를 들어, PC1, PC2, PC3가 원 데이터의 분포(성질)의 약 90%를 보존한다면, 10% 정도의 정보는 잃어버리더라도, 합리적인 분석에 큰 무리가 없으므로, PC1, PC2, PC3만 택하여 3차원 데이터로 차원을 줄일 수 있다. 이 경우 계산과 시각화가 용이하여 데이터를 쉽게 분석할 수 있다.
PCA의 기하학적 의미
PCA는 데이터의 분산(variance)을 최대한 보존하면서 서로 직교하는 새 기저(축)를 찾아, 고차원 공간의 표본들을 선형 연관성이 없는 저차원 공간으로 projection하는 기법
row-wise vector vs column-wise vector
row-wise vector: 행에 데이터(n), 열에 특성변수(P)가 위치한 행렬
column-wise vector: 열에 데이터(n), 행에 특성변수(P)가 위치한 행렬
PCA를 유도하는 과정에서 X는 column-wise로 간주한다.
Covariance Matrix
X: (p by n matrix: p: # of variables, n: # of records)
V는 $\Sigma$의 고유벡터들을 각각의 열벡터들로 하는 행렬이므로 PCA에 의해 변환된 좌표축들은 uncorrelated가 됨
따라서 원 데이터의 특성변수들이 상관관계가 크더라도 PCA에 의해 변환된 변수들은 상관관계가 없음
얼마나 많은 principal components를 선택해야 합리적일까
total variance ( $\frac{1}{n}XX^{T}$ ) = trace($\frac{1}{n}XX^{T}$)
그런데 $\Sigma = \frac{1}{n}XX^{T}$는 (p x p) non-singular matrix이므로 tr($\frac{1}{n}XX^{T}$) = $\lambda_1 + \lambda_2 + ... + \lambda_p$
따라서 X의 공분산행렬 $\Sigma$의 총 분산의 합은 공분산행렬 $\Sigma$의 고유값들의 합 ($\lambda_1 + \lambda_2 + ... + \lambda_p$)과 같다.
또한 if i $\neq$j 일 때, $z_i 와 z_j$는uncorrelated되어 있으므로 var($z_i + z_j$) = $var(z_i)$+ $var(z_j)$ = $\lambda_{i}$ + $\lambda_{j}$
$\frac{var(z_{1}+...+ z_{k})}{total- variance(\Sigma)}$ = $\frac{var(z_{1})+var(z_{2})+ \ldots + var(z_{k})}{\lambda_{1} + \lambda_{2} + \ldots \lambda_{p}}$ = $\frac{\lambda_{1} + \lambda_{2} + \ldots \lambda_{k}}{\lambda_{1} + \lambda_{2} + \ldots \lambda_{p}}$ (단, k < p) 에서 전체 데이터의 분산 중 보존되는 정도를 통해 principal components의 수 k 를 구한다
일반적으로 누적 분산의 합 그래프를 통해 분산의 합의 증가 기울기가 무뎌지는 곳(elbow point)의 k 값을 principal components 의 수로 결정한다
PCA의 단점
PCA는 통계모델에서 시작했기 때문에 데이터의 분포가 Gaussian 분포를 가정함. 따라서 Gaussian분포를 따르지 않거나 multimodel Gaussian 분포를 따를 경우 PCA의 결과물이 유용하지 못함
대안: 커널 PCA, LLE(Local Linear Embedding)
PCA는 범주 정보를 고려하지 않고 오직 데이터가 가진 분산을 최대한 보존하는 방법론이기 때문에 target의 범주 정보가 주어져있을 때, 분류 성능을 향상시키는 모델은 아님.
대안: Fisher의 LDA(Linear Discriminant Analysis) - 두 범주간의 구분을 잘 할 수 있는 축을 찾아 사영을 하는 방법은 Fisher의 LDA, Partial Least Square(PLS)
데이터 복원
X (p x n) - > $\alpha_i^{T}$X (1 x p)(p x n) - > $\alpha_{i}\alpha_{i}^{T}$X (p x 1)(1 x p)(p x n)
값이 완벽하게 복원되지는 않음. 재구축 오차가 생김
재구축 오차를 사용하여 이상치 탐지에서 많이 사용됨
PCA 알고리즘 요약
데이터 정규화(mean centering)
기존 변수의 covariance matrix 계산
covariance matrix로부터 eigenvalue 및 이에 대응되는 eigenvector를 계산