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)
COV(X) = 1n(X−¯X)(X−¯X)T
X는 column-wise 이므로 ¯X의 각 Column은 변수들의 평균으로 채워져 있음
(X−¯X) 가 p x n 차원이고 (X−¯X)T가 n x p 차원이므로 COV(X)는 P x P 차원임
COV(X)는 대칭행렬임
COV(X) = 1n(X−¯X)(X−¯X)T = Σ이라고 하자
사영(projection)이란?
한 벡터 →b를 다른 벡터 →a에 사영시킨다는 것은 벡터 →b로부터 벡터 →a에 수직인 점까지의 길이를 가지며 벡터→a와 같은 방향을 갖는 벡터를 찾는다는 것을 의미
(→b−p→a)T→a=0⇒→bT→a−p→aT→a=0⇒p=→bT→a→aT→a
∴→x=p→a=→bT→a→aT→a→a(if→aisunitvector)
p=→bT→a⇒→x=p→a=(→bT→a)→a
Data centering
각 변수의 평균을 0으로 바꿔주는 것
즉,X대신(X−¯X)를 쓰는 것
만약 X를 이미 centering 한 것으로 간주하면 COV(X) = 1nXXT이 된다.
PCA를 수행하기 전에 데이터는 사전에 centering 된 것으로 간주한다. (즉, ¯xi=0,i=1,2,....,p)
선형변환
PCA는 변수가 p개, 관측치가 n개 있는 데이터 X(p x n)로부터 새로운 변수 zi를 만드는 과정으로 모든 특성변수를 선형결합하여 새로운 zi를 만들게 된다.
여기서 →xi는 행렬X의 i번째 변수에 해당하는 열벡터(n x 1)이다. 또한 →αi는 (p x 1)열벡터이고 →αiTX의 값인 →zi 는 (n x 1 )열벡터 (1차원) 이다.
V는 Σ의 고유벡터들을 각각의 열벡터들로 하는 행렬이므로 PCA에 의해 변환된 좌표축들은 uncorrelated가 됨
따라서 원 데이터의 특성변수들이 상관관계가 크더라도 PCA에 의해 변환된 변수들은 상관관계가 없음
얼마나 많은 principal components를 선택해야 합리적일까
total variance ( 1nXXT ) = trace(1nXXT)
그런데 Σ=1nXXT는 (p x p) non-singular matrix이므로 tr(1nXXT) = λ1+λ2+...+λp
따라서 X의 공분산행렬 Σ의 총 분산의 합은 공분산행렬 Σ의 고유값들의 합 (λ1+λ2+...+λp)과 같다.
또한 if i ≠j 일 때, zi와zj는uncorrelated되어 있으므로 var(zi+zj) = var(zi)+ var(zj) = λi + λj
var(z1+...+zk)total−variance(Σ) = var(z1)+var(z2)+…+var(zk)λ1+λ2+…λp = λ1+λ2+…λkλ1+λ2+…λ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) - > αTiX (1 x p)(p x n) - > αiαTiX (p x 1)(1 x p)(p x n)
값이 완벽하게 복원되지는 않음. 재구축 오차가 생김
재구축 오차를 사용하여 이상치 탐지에서 많이 사용됨
PCA 알고리즘 요약
데이터 정규화(mean centering)
기존 변수의 covariance matrix 계산
covariance matrix로부터 eigenvalue 및 이에 대응되는 eigenvector를 계산