8-2. PCA(Principal Component Analysis)

2021. 5. 12. 20:17Machine Learning

주성분 분석(Principal Component Analysis, PCA)는 데이터에 가장 가까운 초평면을 정의하고,

 

이 초평면에 데이터를 투영시키는 기법이다. 

 

 

PCA

출처 : laptrinhx.com/dimensionality-reduction-principal-component-analysis-359354885/

 

위 그림은 투영시켰을 때 데이터셋과의 평균제곱거리가 가장 적은 초평면을 찾고 투영시키는 과정을 나타냈다. 

 

PCA의 과정은 다음과 같다. 

 

주성분(PC)을 찾는 과정

출처 : medium.com/xebia-engineering/principal-component-analysis-autoencoder-257e90d08a4e
1. 데이터셋의 분산을 최대한 보존하는 축을 찾는다. (1번째 주성분)

2. 1번째 주성분에 직교하고, 남은 분산을 최대한 보존하는 축을 찾는다. (2번째 주성분)

.
.
.

n. 1 ~ n-1번째 주성분에 직교하고, 남은 분산을 최대한 보존하는 축을 찾는다. (n번째 주성분)

데이터셋의 주성분은 특이값 분해(SVD)라는 기법을 통해 찾는다. 

 

특이값 분해에서는 데이터셋 X를 UΣV^t 로 분해한다. 모든 주성분의 단위 벡터는 V^t에 담겨있다. 

 

3차원 데이터의 PCA 과정

출처 : Hands On Machine Learning 2판, Aurélien Géron

위 그림은 3차원 데이터셋의 2가지 주성분을 찾고 이 두 주성분으로 평면을 형성하여 투영시킨 결과이다. 

 

기존 데이터셋 X와 d개의 주성분 벡터를 담은 행렬 W_d를 행렬곱셈하여 투영된 X_d-proj를 계산할 수 있다. 

 

반대로 기존 주성분 벡터 행렬을 전치한 행렬을 투영한 데이터와 행렬곱하여 다시 복원할 수 있다. 

 

재구성된 데이터와 원본 데이터 사이의 오차를 재구성 오차라고 한다. 

 

 

 

커널 PCA


샘플에 커널 트릭을 적용하여 고차원 공간에 매핑하고 선형 분류(회귀)할 경우, 원본 데이터에서의 비선형 분류(회귀)를 

 

가능한다. 이 기법을 PCA에도 동일하게 적용하여 차원 축소를 위한 비선형 투영을 가능하게한 것이 커널 PCA이다. 

 

커널 PCA를 이용한 차원 축소

출처 : scikit-learn.org/stable/auto_examples/decomposition/plot_kernel_pca.html