본문 바로가기

수학

주성분분석(PCA : Principal Component Analysis) (1) - 분포의 특성을 가장 뚜렷하게 표현하는 좌표 축의 방향

728x90

PCA(주성분분석, Principle Compoent Analysis)는 특성 공간(feature space)상에 존재하는 데이터의 분포를 활용하여 분포의 특성을 가장 뚜렷하게 표현하는 주축 벡터(principal vector 혹은 principal axis)를 찾고, 이 주축 벡터를 활용하여 데이터를 분석하는 방법을 뜻합니다. 문장이 길어서 PCA에 대해서 처음 접하는 분이라면 이해가 어려울 수 도 있는데, 여기서 가장 중요한 개념은 "데이터의 분포를 활용하여 분포의 특성을 가장 뚜렷하게 표현하는 주축 벡터"이고, 이 개념을 이해한다면 PCA를 이해했다고 볼 수 있습니다. 

 

주축 벡터에 대한 수학적 정의를 하기 앞서, 간단한 예를 들어서 주축 벡터의 개념을 설명해 보도록 하겠습니다.

다양한 신체의 3D 이미지 입니다. 위 사람들의 신체를 기술하는 단 하나 특성(단어)를 택한다면 뭐가 될까요? 제가 생각할 때는 "덩치가 크다 혹은 작다"가 적당할 것 같습니다. 국어 사전에서 찾은 "덩치"의 뜻은 "몸의 부피"인데, 몸의 부피가 큰 사람과 몸의 부피가 작은 사람으로 줄을 세운다면 위 사람들의 신체의 특성을 어느 정도는 표현할 수 있을 것 같습니다. 키를 통해서 줄을 세울 수 도 있고, 몸무게를 통해서도 줄을 세울 수 있습니다. 

 

(앞에서 잠깐 언급 했던 것과 같이) 저 사람들의 키와 몸무게를 측정하여 2차원 평면에 표현했다고 하겠습니다. 아마도 분포는 아래와 유사할 것입니다. 

키(height)와 몸무게(weight)의 분포를 위와 같이 가정하였습니다. 그리고 데이터의 갯수(사람의 숫자)는 100개 입니다. 키와 몸무게는 각각 분포의 평균값이 0이 되도록 쉬트트 시켰고, 각각의 유닛으로 스케일링 시켰다고 생각하면 됩니다. 

 

사람의 몸무게는 정확하지는 않지만 대체로 키에 비례를 합니다. 따라서 키가 큰 사람이 몸무게가 많이 나가고, 반대로 몸무게가 작은 사람이 키가 작을 가능성이 높습니다. 물론 키가 큰데 몸무게가 적게 나가는 사람과 키가 작은데 몸무게가 많이 나가는 사람도 있지만, 상대적으로 그 빈도는 낮을 것 입니다. 

 

(키, 몸무게)의 분포가 위와 같을 때, 어떤 값을 기준으로 사람들을 분류 한다면 가장 잘 분류 할 수 있을까요? 여기서 사람들 잘 분류한다는 것은, 우리가 정한 "어떤 값"의 범위를 말 했을 때, 그 범위에 속한 사람의 수를 더 적게 만든다는 것을 뜻 합니다. 예를들어 키로 분류해 보면 어떨까요? 위 분포에서 가장 작은 키는 약 -2.5, 가장 큰 키는 약 2.5 입니다. 최대값과 최소값의 차이는 2.5 - (-2.5) = 5.0 입니다. 즉 5라는 범위 안에 100개의 데이터가 있는 것 입니다. 몸무게로 분류를 한다면 몸무게이 최소값은 -2.1 최고값은 2.2로 최대값과 최소값의 차이는 2.2 - (-2.1) = 4.3이 됩니다. 평균적으로 생각한다면 키 1 단위당 $\frac{100}{5.0} = 20$명의 사람이 있는 것이고, 몸무게 1 단위당 $\frac{100}{4.3} = 23.3$명의 사람이 있는 것 입니다. 결과가 이렇다면 이 경우에는 키를 이용하여 사람들을 분류하는 것이 좀 더 잘 된 분류 입니다. 

 

단순히 키나 몸무게를 이용하여 분류를 하지 않고 키와 몸무게를 섞어서 분류하면 어떨까요? 예를 들어서

$$\text{키무게} = \frac{1}{\sqrt{2}}\text{키} + \frac{1}{\sqrt{2}}\text{몸무게}$$

와 깉이 "키무게" 라는 것을 정의하고 이 키무게를 통해서 분류하는 것 입니다. 여기서 $\frac{1}{\sqrt{2}}$를 키와 몸무게 앞에 곱한것은 일종의 정규화(Normalization)인데, 뒷 부분에서 정확한 의미를 설명하도록 하겠습니다. 실제로 위 정의에 따라서 위 분포의 키무게를 계산하면 키무게의 최대값은 3.29, 최소값은 -3.04를 얻습니다. 키무게의 최대값과 최소값의 차이는 6.33으로 키무게 1 단위당 $\frac{100}{6.33} = 17.8$ 명의 사람이 있는 것 입니다. 1 단위 당 20명의 사람이 있었던 키 보다 17.8명의 사람이 있는 키무게가 사람들을 분류하는 더 좋은 기준이 됩니다.

 

위에서는 키와 몸무게를 $\frac{1}{\sqrt{2}}$를 곱하고 둘을 더했는데, 만일 빼면 어떻게 될까요?

$$\text{키무게-마이너스} = \frac{1}{\sqrt{2}}\text{키} - \frac{1}{\sqrt{2}}\text{몸무게}$$

와 같이 정의하는 것 입니다. 위 식에 따라서 위 분포의 키무게-마이너스의 최대, 최소값을 구하면 그 값은 각각 0.49, -0.54로 최대값과 최소값의 차이는 1.03이 됩니다. 따라서 키무게-마이너스 1단위당 $\frac{100}{1.03} = 97$ 명의 사람이 있는 것 입니다. 키와 몸무게를 이용하여 새로운 키무게-마이너스를 정의 하였는데, 부호가 중간에 부호가 플러스이냐 마이너스이냐에 따라서 키무게의 범위가 매우 많이 차이가 났고, 따라서 분포를 기술하는(분류하는) 좋은 기준이 되는지, 아니면 나쁜 기준이 되는지가 갈리게 됨을 확인하였습니다. 

위에서 사용한 기준인 키, 몸무게, 키무게-플러스, 키무게-마이너스의 범위를 그래프로 그리면 위와 같습니다. 이 분포에서 키의 범위는 그래프의 X축 방향의 최대-최소값의 차이(거리), 몸무게의 범위는 Y축 방향의 최대-최소값의 차이, 키무게-플러스는 X=Y 방향의 최대-최소값의 차이, 키무게-마이너스는 X=-Y 방향의 최대-최소값의 차이가 됩니다. 

 

위에서 키와 몸무게 사이에 + 부호를 사용한 키무게-플러스의 범위(최대값과 최소값의 차이)가 - 부호를 사용한 키무게-마이너스의 범위 보다 큰 이유는 (키, 몸무게) 부호가 서로 양의 상관 관계를 갖고 있기 때문입니다. 그렇기 때문에, 키가 큰 사람은 몸무게가 많이 나가서 키무게-플러스의 최대값은 컸고, 역시나 키가 작은 사람은 몸무게가 작게 나가기 때문에 키무게-플러스의 최소값이 작았습니다. 그래서 키무게-플러스의 범위가 커진 것 입니다. 반대로 키무게-마이너스의 정의에서는 키와 몸무게의 차이를 구하는 것이기 때문에 경향성이 상쇠되어 범위가 작아진 것 입니다. 키와 몸무게를 "섞어"서 새로운 기준을 만들 때, 부호에 따라서 새롭게 정의한 기준의 범위가 크게 달라 질 수 있습니다. 이렇게 정의한 키무게-플러스를 일상의 용어로 바꾸면 맨 처음에 언급했던 "덩치"와 개념적으로 유사하다고 볼 수 있을 것 같습니다. 보통은 키가 크고 몸무게도 큰 사람이 몸의 부피가 클 테니까요.

 

위에서 간단히 설명한 개념이 바로 PCA와 주축 벡터의 개념입니다. 대응 관계를 설명하면

 

키, 몸무게 : 데이터의 특성

키무게-플러스 : 첫 번째 주축 벡터

키무게-마이너스 : 두 번째 주축 벡터

특성을 가장 뚜렷하게 설명 : 분포의 범위를 가장 크게 함

 

가 됩니다. 위 대응을 이해했다면 PCA에 대한 정성적인 이해를 한 것 입니다. 

 

이제부터는 정량적인 설명을 하도록 하겠습니다. 

 

위에서 사용한 범위, 즉 최대값과 최소값의 차이, 는 직관적이기는 하지만 분포를 설명할 수 있는 좋은 값은 아닙니다. 

예시는 위와 같습니다. 빨간색 X 표시를 한 데이터가 하나 추가 되었다고 생각하겠습니다. 이 데이터 때문에 몸무게의 범위가 기존 보다 커지게 되고, 지금의 예시와 같이 극단적인 경우에는 몸무게의 범위가 키의 범위 보다 커질 수 있습니다. 대체적인 분포, 하늘색으로 표시한 100개이 데이터,에서는 키의 범위가 크지만, 매우 예외적인 데이터, 붉은색 X표시한 데이터,가 추가 되었을 뿐인데 범위의 대소관계를 완전히 바꿔놓은 것 입니다. 이 처럼 단순히 "범위"는 단 하나의 데이터에 의해서도 크게 바뀔 수 있는 값이기 때문에, 좋은 값은 아닙니다. 

 

따라서 분포에 속한 모든 데이터를 이용하면서, 데이터가 특정한 방향으로 퍼져있는 경향을 기술하는 통계값을 사용하면 좋은데, 가장 직관적이면서도 익숙한 값은 바로 "분산" 입니다. $N$개의 데이터 집합 $S = \{ x_i | i = 1, 2, 3, ..., N\} $에 대해서 분산은

$$\text{Var}(S) = \frac{1}{N} \sum_{i=1}^{N} \Big( x_i - \mu \Big)^2$$

와 같이 정의 됩니다. 중학교(?) 에서 배우는 것이기 때문에 익숙한 값이라 생각됩니다. 여기서 $\mu$는 집합 $S = \{ x_i | i = 1, 2, 3, ..., N\} $의 평균으로 $\mu = \frac{1}{N} \sum_{i=1}^{N}x_i$인데, 우리는 처음 부터 이 분포의 평균이 $0$이 되도록 정의하였기 때문에, 이 경우의 분산은

$$\text{Var} = \frac{1}{N} \sum_{i=1}^{N} x_i^2$$

와 같이 간단한 식이 됩니다. 

 

"범위"의 정량적인 통계값을 "분산"으로 사용하기로 했기 때문에, "분포의 범위를 가장 크게함"은 "분포의 분산을 가장 크게 함"으로 바뀌게 됩니다. 그리고 위에서 했던 것과 같이 단순히 키 혹은 몸무게를 특성값으로 사용하는 것이 아니라 이를 적절하게 섞은값을 사용하여 새로운 특성을 정의하고, 이 특성에 대한 분산을 계산할 수 있습니다. 위에서 키와 몸무게라고 표현한 것을 일반화하여 2개의 특성값을 갖는 데이터를 $(x^1, x^2)$와 같이 2차원 공간상의 한 점으로 표현할 수 있습니다. 그리고 데이터의 분포는 집합 $S = \{(x^1_i, x^2_i) | i=1,2,3, ..., N\}$ 으로 쓸 수 있습니다. $x^1, x^2$에서 $1,2$를 윗첨자로 쓴 것은 제곱이 아니라 아랫첨자에 $i$를 쓰기 위함이었습니다. 

 

$x^1$과 $x^2$를 "섞은값"은 일반적으로 $w = \omega_1 x^1 + \omega_1 x^2$와 같이 $x^1$과 $x^2$의 합으로 쓸 수 있습니다. 하지만 단순한 합은 아니고 $\omega_1, \omega_2$ 만큼 비율을 달리하는 합입니다. $w$값은 아래와 같이 표현할 수 도 있는데,

 

$w = \omega_1 x^1 + \omega_2 x^2 = (\omega_1, \omega_2) \cdot (x^1, x^2) = \vec{\omega} \cdot \vec{x}$

 

여기서 $|\vec{\omega}|=1$ 로 제한한다면, 즉 $\vec{\omega}$가 유닛 벡터라면, $w = \vec{\omega} \cdot \vec{x} = |\vec{x}| \cos \theta$ (여기서 $\theta$는 $\vec{\omega}$와 $\vec{x}$가 이루는 각도)는 벡터 $\vec{x}$의 $\vec{\omega}$ 방향으로의 프로젝션, 즉 $\vec{\omega}$의 방향과 나란한 축을 잡았을 때, 이 축의 좌표값이 됩니다. 

그래프로 표현하면 위와 같습니다. 

 

따라서 데이터 분포 집합 $S = \{(x^1_i, x^2_i) | i=1,2,3, ..., N\}$ 의 $\vec{\omega}$ 방향으로의 프로젝션의 값의 집합은

$$S_{\vec{\omega}} = \{ \omega_i = \vec{\omega} \cdot \vec{x}_i | i =1, 2, 3, ..., N \} $$

와 같고, 이 값의 분산 $\text{Var}(S_{\vec{\omega}})$ 역시 구할 수 있습니다.

 

위 분산 $\text{Var}(S_{\vec{\omega}})$을 가장 크게 하는 벡터 $\vec{\omega}$가 우리가 찾으려고 하던 주축 벡터가 됩니다. 다시 한 번 설명하면, 주축 벡터란 특정 벡터의 방향과 나란한 방향의 축으로 데이터를 사영(프로젝션) 시켜 좌표값을 구하고 이 좌표값의 분산을 구했을 때, 분산을 가장 크게 하는 벡터(의 방향)입니다. 여기서 주축 벡터는 크기는 중요하지 않고 방향만 중요하기 때문에 유닛 벡터로 제한할 수 있습니다. 

 

위 문단을 수학적 정의로 쓰면,

$$\text{PCA}_1 = \vec{\omega}_1 = \arg \min_{|\vec{\omega}| = 1} \text{Var} (S_{\vec{\omega}}) = \arg \min_{|\vec{\omega}| = 1} \frac{1}{N} \sum_{i=1}^{N} \Big(\vec{\omega} \cdot \vec{x}_i\Big)^2$$

가 됩니다. $\text{PCA}_1 = \vec{\omega}_1$에서 $_1$와 같이 아랫첨자로 1을 쓴 것은 첫 번째 주축 벡터라는 뜻 입니다. 

 

이제 문제는 $\frac{1}{N} \sum_{i=1}^{N} \Big(\vec{\omega} \cdot \vec{x}_i\Big)^2$를 최소화 시키는 유닛 벡터 $\vec{\omega}$를 찾는 것 입니다. 

 

우선 매우 구체적인 방식으로 $\vec{\omega}_1$을 찾아 보도록 하겠습니다. 위의 (키, 몸무게) 분포 예시를 계속 이용하면, $\vec{\omega}_1$은 2차원 벡터이고, 임의의 2차원 유닛 벡터는 매개 변수 $\theta$를 사용하여 $\vec{\omega}_1 = (\cos \theta, \sin \theta)$와 같이 쓸 수 있습니다. $\vec{\omega} \cdot \vec{x}_i$ 에서 $\vec{\omega}_1 = (\cos \theta, \sin \theta)$를 대입하고 정리하면 

 

$$\text{Var}(S_{\vec{\omega}}) = \frac{1}{N} \sum_{i=1}^{N} \Big(\vec{\omega} \cdot \vec{x}_i\Big)^2 = \frac{1}{N} \sum_{i=1}^{N} (x^1_i \cos \theta + x^2_i \sin \theta)^2 = \text{Var}(\theta)$$

 

와 같이 우리가 최소화 하려고 하는 함수 $\text{Var}(\theta)$는 $\theta$의 일변수 함수가 됩니다. 이 함수를 $\theta$에 대해 미분하고, 미분값이 0이 되게 하는 $\theta$를 찾으면 되는데, 이해의 편의를 위해서 $\text{Var}(\theta)$를 직접 계산하여 그래프를 그려 볼 수 도 있습니다. 

포스팅의 처음에 제시한 분포에 대해서, $\text{Var}(\theta)$는 $\theta$ 는 위 그래프와 같이 생겼습니다. $\theta_{1} = 0.222 \pi \approx \frac{\pi}{4}$ 에서 최대값이 됩니다. 즉, $\vec{\omega}_1 = (\cos \theta_1, \sin \theta_1) = (0.767, 0.641)$ 이 됩니다. 이 주축 벡터를 데이터와 함께 그리면 아래와 같습니다.

주축 벡터의 방향은 붉은색 직선의 방향과 같은데, 데이터가 키가 크면 몸무게가 커지는 상관관계를 갖고 있기 때문에 주축 벡터의 방향은 $y=x$와 거의 나란합니다. 

 

임의의 경우에 대해서 $\text{Var}(\theta)$를 구하고, 이것을 미분하는 것은 매우 귀찮습니다. 특히 데이터의 특성 공간이 2차원인 경우에는 $\theta$의 1변수 함수로 주어지지만, 데이터의 특성 공간이 고차원인 경우에는 매개변수가 매우 많이 필요하며, 미분과 방정식을 풀어야하는 복잡함이 있습니다. 따라서 $\text{Var}(\vec{\omega})$를 최소화 할 수 있는 일반적인 방법을 생각해야 합니다. $\text{Var}(\vec{\omega})$를 다시 쓰면 (비례 상수인 $\frac{1}{N}$ 은 생략하도록 하겠습니다)

$$\text{Var}(\vec{\omega}) = \sum_{i=1}^{N} (\vec{\omega} \cdot \vec{x}_i)^2 = \sum_{i=1}^{N} (\vec{\omega} \cdot \vec{x}_i) (\vec{x}_i \cdot \vec{\omega}) = \sum_{i=1}^{N}  (\vec{\omega}^{T} \vec{x}_i) (\vec{x}_i^{T} \vec{\omega}) = \vec{\omega}^{T} \Big( \sum_{i=1}^{N} \vec{x}_i \vec{x}_i^{T}  \Big) \vec{\omega} $$

와 같이 쓸 수 있습니다. $\vec{a} \cdot \vec{b} = \vec{a}^T \vec{b}$ 를 이용하였습니다. $^T$는 행렬(벡터)의 $Transpose$입니다. 데이터의 특성 공간의 차원이 $M$ 일때, 데이터 벡터 $x_i = (x^1, x^2, ..., x^M)$에 대해서 $$\vec{x}_i \vec{x}_i^T =  \begin{pmatrix}x^1_i\\x^2_i\\...\\x^M_i\end{pmatrix}  
  \begin{pmatrix}x^1_i&x^2_i&...&x^M_i\end{pmatrix} 
 =
 \begin{pmatrix}
 x^1_ix^1_i&x^1_ix^2_i&...&x^1_ix^M_i\\
 x^2_ix^1_i&x^2_ix^2_i&...&x^2_ix^M_i\\
 ...&...&...&...\\
 x^M_ix^1_i&x^M_ix^2_i&...&x^M_ix^M_i\\
 \end{pmatrix} $$

가 되고, $i$에 대한 합을 함께 써 주고, $\frac{1}{N}$을 다시 회복하면,

$$C = \frac{1}{N} \sum_{i=1}^{N} \begin{pmatrix}
 x^1_ix^1_i&x^1_ix^2_i&...&x^1_ix^M_i\\
 x^2_ix^1_i&x^2_ix^2_i&...&x^2_ix^M_i\\
 ...&...&...&...\\
 x^M_ix^1_i&x^M_ix^2_i&...&x^M_ix^M_i\\
 \end{pmatrix}  $$

인 행렬 $C$를 정의할 수 있습니다. 이 행렬을 공분산행렬 Covariance Matrix라고 합니다. 말 그대로 분산을 일반화한 행렬입니다. 이 행렬을 이용해서 우리가 최대화 하려는 분산값 $\text{Var}(\vec{\omega})$를 쓰면

$$\text{Var}(\vec{\omega}) = \vec{\omega}^T C \vec{\omega}$$

와 같이 $\vec{\omega}$에 대한 2차형식을 얻을 수 있습니다. 

 

$\vec{\omega}$에 대한 함수 $\text{Var}(\vec{\omega}) = \vec{\omega}^T C \vec{\omega}$ 를 최대화 하는 것이 문제이니, $\vec{\omega}^T C \vec{\omega}$를 $\vec{\omega}$에 대해서 미분 하고, 미분값이 0이 되게 하는 $\vec{\omega}$를 찾으면 됩니다. 여기서 $\vec{\omega}$는 유닛 벡터이기 때문에 $|\vec{\omega}|^2-1=0$와 같은 구속 조건이 있고, 구속 조건이 있을 때 라그랑주 승수법(Lagrange Multiplier Method)를 이용하여 $\vec{\omega}$를 구하면,

$$0 = \delta \Big( \text{Var}(\vec{\omega}) \Big) \rightarrow 0 = \frac{\delta}{\delta \vec{\omega}} \Big(  \vec{\omega}^T C \vec{\omega} - \lambda \vec{\omega}^T \vec{\omega} \Big) = 2\Big(C\vec{\omega} - \lambda \vec{\omega} \Big) = 0$$

이 되고, 마지막 항을 보기 좋게 배치하면,

$$C \vec{\omega} = \lambda \vec{\omega}$$

가 됩니다.

 

이 마지막 식은 행렬 $C$의 고유 벡터를 구하는 식입니다. 행렬 $C$는 대칭행렬이므로 반드시 고유 벡터가 존재하고 일반적인 고유벡터를 구하는 방식으로 고유벡터와 고유값을 구할 수 있습니다. 결국 우리가 찾으려고하는 주축 벡터 $\vec{\omega}$는 행렬 $C$의 고유 벡터가 됩니다! 어쩌면 다소 당연하면서도 신기한 결론에 도달했습니다. 조금 더 구체적으로는 행렬 $C$는 총 $M$개의 고유 벡터를 갖는데, 이 고유 벡터 중 고유 값이 가장 큰 고유 벡터가 첫 번째 주축 벡터 $\vec{\omega}_1$이 됩니다. 

 

두 번째 주축 벡터의 첫 번째 주축 벡터 $\vec{\omega}_1$과 수직한 벡터 중에서 $\text{Var}(\vec{\omega})$를 최대로 만들 수 있는 (유닛) 벡터로 정의 됩니다. 수식으로 쓴다면, 

 

$$\text{PCA}_2 = \vec{\omega}_2 = \arg \min_{|\vec{\omega}_2| = 1, \vec{\omega}_1 \cdot \vec{\omega}_2 = 0} \text{Var} (S_{\vec{\omega}})$$

입니다. 구속 조건이 2개 인데요, 위에서 $\vec{\omega}_1$를 구했던 방식처럼 라그랑지 승수법을 이용하여 구체적으로 $\vec{\omega}_2$를 다시 구해도 되지만, 위에서 $\vec{\omega}_1$를 구할 때 썼던 방식과 결과는 꼭 첫 번째 주축 벡터가 아닌 일반적인 $m$ 번째 추죽 벡터가 만족 시켜야하는 식 입니다. 고유 벡터끼리는 반드시 수직이라는 좋은 성질을 사용한다면 행렬 $C$의 고유 벡터 중, 두 번째로 고유값이 큰 벡터가 두 번째 주축 벡터가 됩니다. 일반적으로는 $m$번째로 고유값이 큰 고유 벡터가 $m$번째 주축 벡터가 되는것 입니다. 행렬 $C$를 한 번 대각화 하기만 하면, 데이터 집한 $S$의 주축 벡터를 구할 수 있는 것 입니다. 

 

데이터와 함께 첫 번째, 두 번째 고유 벡터의 방향을 함께 그리면 아래와 같습니다. 

빨간색이 첫 번째 고유 벡터의 방향, 녹색이 두 번째 고유 벡터의 방향 입니다. 이 예제와 같이 데이터의 특성 공간이 2차원인 경우에는 첫 번째 고유 벡터를 구하면, 바로 두 번째 고유 벡터를 구할 수 있는데, 첫 번째 고유 벡터와 수직인 공간의 차원은 1차원이기 때문입니다. 

 

고유 벡터의 정확한 값은

$$\vec{\omega}_1 = (0.767, 0.641)$$

$$\vec{\omega}_2 = (0.641, -0.767)$$

이 됩니다. 포스팅의 초반부에 사용했던 (키, 몸무게)로 표현한다면, 

 

첫 번째 주축 벡터의 의미 = 덩치가 크고 작음을 포현

두 번째 주축 벡터의 의미 = 홀쭉하고, 뚱뚱하고를 표현

 

이라고 볼 수 있습니다. 사람의 신체를 표현할 때 (키, 몸무게)를 말 할 수도 있고, (덩치가 크고 작음, 홀쭉 혹은 뚱뚱)으로 표현할 수 도 있습니다. 전자는 데이터의 특성을 그대로 표현한 방식, 후자는 PCA의 개념을 이용하여 표현한 방식이 됩니다. 

 

위 과정을 요약한 최종 결과는

 

데이터 집합 $S = \{ \vec{x}_i = (x^1_i, x^2_i, ..., x^M_i ) | i =1, 2, 3, ..., N \}$의 주축 벡터는 $S$로 부터 구할 수 있는 공분산 행렬 $C$의 고유 벡터와 일치한다

 

입니다. 

 

포스팅의 길이가 너무 길어질 것 같아서, PCA에 대한 이후의 이야기는 다음 포스팅에서 하도록 하겠습니다. 다음 포스팅에서는 이렇게 구한 주축 벡터를 이용한 PCA 분석의 활용과 특성에 대해 알아보도록 하겠습니다. 

 

 

 

728x90