주성분 분석(Principal Component Analysis)
[References]
1. 이상구 with 이재화, [빅북] 인공지능을 위한 기초수학(Basic Mathematics for Artificial Intelligence), 교보문고 POD, 2019.
http://matrix.skku.ac.kr/math4ai/
[Key point]
주성분 분석(Principal Component Analysis, PCA)은 가장 널리 사용되는 차원 축소 기법 중 하나로,
원 데이터의 분포를 최대한 보존하면서 서로 직교하는 새 기저(축)를 찾아, 고차원 공간의 데이터들을
선형 연관성이 없는 저차원 공간으로 변환한다. 이때 계산은 주로 행렬의 특이값 분해(SVD)를 사용한다.
[참고] PCA의 자세한 유도 과정은 웹 사이트 http://matrix.skku.ac.kr/math4ai/part4/ 를 참조하라.
주성분 분석(Principal Component Analysis)의 계산 방법
① $n\times p$의 데이터 행렬 $X$를 구성한다. 여기서 $n$은 표본(sample)의 개수이고, $p$는 데이터의 특성(feature)을 나타내는 확률변수의 개수이다.
② $X$를 센터링(centering, 각 열의 평균을 0으로 만드는 것)하여 ${\tilde X}$를 구한다.
③ ${\tilde X}$의 특이값 분해(SVD)를 구하여 ${\tilde X} = USV^T$를 얻는다.
[참고] SVD http://matrix.skku.ac.kr/2018-album/SVD.html
④ 관계식 $Z={\tilde X}V=US$ 을 이용하여 PC score를 구한다.
[결과]
① $V$의 열벡터가 주축(principal axes)이 된다.
② $S$의 주 대각선 성분, 즉, 특이값 $s_i$는 공분산 행렬 $\Sigma = \frac{1}{n}{\tilde X}^T{\tilde X}$의 고윳값 $\lambda_i$와 관계식
$\lambda_i = \frac{s_i^2}{n}$
을 만족하며, $\lambda_i$는 대응하는 PC의 분산이 된다.
③ 데이터를 $p$차원에서 $k$ ($\ll p$) 차원으로 줄이기 위하여 $U$의 처음 $k$개의 열벡터 $U_k$와 $S$의 $k$번째 선행 주 부분 행렬
(leading principal submatrix) $S_k$를 택하면, $U_kS_k$는 처음 $k$개의 PC를 포함하는 $n\times k$ 행렬이 된다.
$Z_k = U_kS_k$
④ ③에서 얻은 $Z_k$에 $s_1$, $s_2$, $\ldots$, $s_k$에 대응되는 주축으로 이루어진 행렬 $V_k^T$를 곱하면, $X_k=U_kS_kV_k^T$는 처음 $k$개의
PC로부터 원 데이터를 복원하도록 해주는 rank가 $k$인 $n\times p$ 행렬이 된다. 이는 ${\tilde X}$의 SVD에서 크기 순서대로 $k$개의
큰 특이값 $s_1\ge s_2 \ge \cdots \ge s_k > 0$과 이에 대응되는 $U$와 $V$의 처음 $k$개의 열벡터를 택하는 것과 같다.
이를 truncated SVD라고 한다. 실제로 $X_k$는 rank가 $k$인 행렬 중에서 ${\tilde X}$에 가장 가까운 행렬이 된다.
${\tilde X} \approx X_k := \sum_{i=1}^k s_i {\bf u}_i {\bf v}_i ^T = \textrm {arg}\min_{ \textrm {rank}(W)\le k} \| {\tilde X} - W \|_F ^2$
[예시] 사람들이 새 컴퓨터를 선택할 때 관심을 갖는 아래 사항에 관하여 척도가 7점인 4문항의 리커트(Likert)
설문 조사를 16명에게 실시하였다. (1: 매우 그렇지 않다 – 7: 매우 그렇다)
[출처] http://yatani.jp/teaching/doku.php?id=hcistats:PCA
Price 가격이 저렴하다.
Software 운영체제가 사용하려는 소프트웨어와 호환된다.
Aesthetics 디자인이 매력적이다.
Brand 유명 브랜드의 제품이다.
데이터는 다음과 같다.
Participant | Price | Software | Aesthetics | Brand |
---|---|---|---|---|
P1 | 6 | 5 | 3 | 4 |
P2 | 7 | 3 | 2 | 2 |
P3 | 6 | 4 | 4 | 5 |
P4 | 5 | 7 | 1 | 3 |
P5 | 7 | 7 | 5 | 5 |
P6 | 6 | 4 | 2 | 3 |
P7 | 5 | 7 | 2 | 1 |
P8 | 6 | 5 | 4 | 4 |
P9 | 3 | 5 | 6 | 7 |
P10 | 1 | 3 | 7 | 5 |
P11 | 2 | 6 | 6 | 7 |
P12 | 5 | 7 | 7 | 6 |
P13 | 2 | 4 | 5 | 6 |
P14 | 3 | 5 | 6 | 5 |
P15 | 1 | 6 | 5 | 5 |
P16 | 2 | 3 | 7 | 7 |
이를 Sage에서 R 코드로 구현한 자료는 http://math1.skku.ac.kr/home/pub/212/ 에서 확인할 수 있다.
본 페이지에서는 Sage를 활용하여 계산한다.
(아래 SageMathCell에 실습해보세요)
Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee
*This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (2017R1D1A1B03035865).