Always awake,

주성분 분석(PCA)의 개념적 이해 본문

통계

주성분 분석(PCA)의 개념적 이해

호재 P.B 2020. 9. 1. 02:09

"주성분 분석을 개념적으로 이해하기 위한 포스팅입니다"

 

데이터 분석과 머신러닝 모델에 대해 공부하다 보면 데이터 전처리가 매우 중요하다는 것을 알 수 있습니다.

 

그중 특히, input features(변수)의 수가 매우 많은 경우 고차원의 저주, 다중공선성 문제가 발생할 수 있습니다.

 

고차원의 저주

모델이 매우 복잡해져 학습 시간이 매우 길어지고, 모델이 일반화 되지 못해(overfitting) 예측력 등의 퍼포먼스가 저하되는 현상

 

다중공선성 문제

그리고 각 변수 간에 상관성이 있는 경우 모델이 제대로 fitting 되지 못하는 현상 (선형 회귀로 예를 들면 독립 변수의 계수가 불안정해짐)

 

이 두 가지 문제를 해결하는 방법 중 하나가 주성분 분석(Principal Component Analysis) 입니다.

 

주성분 분석이란, 여러 변수를 선형 결합하여 분산이 큰 축을 변수의 수만큼 생성하는 것입니다.

다중공선성 문제 해결, 차원 축소 시 많이 사용됩니다.

데이터를 사영하였을 때 분산이 가장 커지는 축을 찾는 것이고 그 축을 주성분이라고 합니다.

여기서 분산은 데이터가 가지고 있는 정보로 이해하시면 됩니다.

 

왜 데이터의 정보가 분산으로 표현되는지 아래의 예시를 통해 설명하겠습니다.

 


분산과 PCA 설명

 

<상관성이 있는 두 개의 변수>

 

$x1$ 과 $x2$ 두 변수가 있습니다.

두 변수를 plotting 하였을 때 다음과 같은 패턴이 나타나며 우리는 두 변수가 상관성이 있다고 판단할 수 있습니다.

이 경우 두 변수를 독립변수로 하여 모델링을 진행하였을 때 다중공선성 문제가 발생하게 됩니다.

 

이러한 문제로 두 변수를 한 모델에 같이 사용할 수 없기 때문에 우리는 선택을 해야 합니다.

 

하나의 변수만 사용한다

가장 쉬운 방법은 한 변수만 사용하는 것입니다.

하나의 변수를 사용한다는 것은 해당 축에 데이터를 모두 사영시킨다는 것입니다.

 

<변수를 하나만 선택하는 경우의 사영(projection)>

 

  • $x1$만 사용하는 경우 : 모든 데이터 포인트를 $x_1$에 사영(projection)합니다.
  • $x2$만 사용하는 경우 : 모든 데이터 포인트를 $x_2$에 사영(projection)합니다.

그런데 여기서 문제가 발생합니다.

그림에서 보는 것과 같이 보라색으로 표시된 데이터의 경우 사영되지 않은 축(버려진 변수)의 값은 각각 다르지만 사영한 축(선택된 변수)에서는 같은 데이터로 취급된다는 점입니다.

 

여기서 버려진 축에서 정보의 손실이 발생합니다. 즉, 하나의 축에만 사영하게 되면 두 데이터가 같아짐으로써 분산이 낮아지는 것이죠. 

 

이렇게 정보를 분산으로 이해하시면 됩니다.

 

새로운 축을 찾는다(주성분)

주성분 도출

 

그렇다면 정보 손실을 최소화하며 변수를 줄이려면 어떻게 해야 할까요?

바로 새로운 축을 찾는 것입니다. 그 새로운 축은 수학적으로 분산(정보량)을 최대화하는 축이 됩니다.

이 방법이 주성분 분석입니다.

 

<주성분 분석 시 사영(projection)>

그림에서 보이는 두 축이 바로 주성분 분석을 통해 생성된 새로운 축입니다.

주성분 분석으로 나온 새로운 축을 주성분이라고 하며 이는 기존 변수의 수만큼 생성됩니다.

 

이 주성분은 기존 변수의 선형 결합으로 이루어집니다.

따라서 주성분 분석의 목표는 분산을 최대화하는 $\alpha_1$, $\alpha_2$ 그리고 $\beta_1$, $\beta_2$를 찾는 것입니다.

 

주성분의 조건은 다음과 같습니다.

  • 기존 변수의 수만큼 생성된다.
  • 기존 변수의 선형 결합으로 생성된다.
  • 분산은 최대화하는 방향으로 생성된다.
  • 주성분끼리는 서로 직교한다(독립적이다)

주성분 선택

 

주성분 분석으로 우리는 정보량을 보존하는 축을 새로 얻게 되었습니다.

새로운 축은 기존 변수의 수와 같기 때문에 현재로써는 차원을 축소하는 효과를 얻지 못했습니다.

 

이제 주성분 중 일부를 선택하여 차원을 축소하는 단계를 거쳐야 합니다.

위 그림에서 보면 첫 번째 주성분($ \alpha_1 * x_1 + \alpha_2 * x_2 $) 가 두 번째 주성분($ \beta_1 * x_1 + \beta_2 * x_2 $) 보다 분산이 큰 것을 알 수 있습니다.

즉, 첫 번째 주성분이 두 번째 주성분보다 원 데이터에 대한 더 많은 정보를 가지고 있다는 뜻이죠

 

이렇게 주성분에 따른 분산을 plot으로 표현하고 분산이 큰 일부 주성분을 선택하는 방법을 많이 사용합니다.

이때 사용하는 plot을 Scree plot이라고 합니다.

 

주성분 선택 시 scree plot의 기울기가 급격히 낮아지기 시작하는 번호의 주성분까지 선택합니다.

(원 데이터 정보(분산)의 대부분을 가지고 있기 때문입니다)

 

예시를 보면 다음과 같습니다.

15개의 변수를 주성분 분석하여 scree plot을 그립니다. 

 

plot을 보면 세 번째 주성분 이후 분산에 대한 기울기가 급격히 낮아지는 것을 알 수 있습니다.

즉, 세 번째 주성분까지가 원 데이터의 대부분의 분산(정보)을 차지하고 있으며 세 개의 주성분으로도 충분히 원 데이터를 표현할 수 있다는 뜻입니다.

 

물론 원 데이터에 대한 일부 정보는 잃지만 15개의 원 변수를 세 개의 변수(주성분)로 축소함으로써 얻는 이점(고차원의 저주, 다중공선성)이 더 크다고 판단하기에 주성분 분석을 사용하게 됩니다.

 


마치며

주성분 분석에 대해 개념적으로 이해하기 위해 작성한 포스팅이다 보니 증명, 수식이 부족하여 아쉽습니다.

해당 내용은 정리된 후에 포스팅해보려고 합니다.

 

긴 글 읽어주셔서 감사합니다 :)

댓글과 피드백은 언제나 환영합니다~

 

 

글이 도움이 되셨다면 아래 클릭 한번 부탁드립니다 :)

반응형

'통계' 카테고리의 다른 글

신뢰성 분석  (1) 2021.10.11
로지스틱 회귀(Logistic Regression)  (3) 2021.10.10
공분산과 상관계수  (11) 2020.09.20
최대 우도 추정법(Maximum Likelihood Estimation)  (5) 2020.09.01
카이제곱 분포 모양 확인하기  (1) 2020.08.30