본문 바로가기
AI

ML : 회귀분석 : PCA (Principal Component Analysis) 차원축소

by 월곡동로봇팔 2020. 3. 7.

등장 배경

차원의 저주

차원의 저주

  • 1차원에서 50%의 자료를 가지고 있다고 할 때, 차원을 늘리면 (변수를 추가하려면) 25%의 자료를 가지고 있고, 또 차원을 늘리면 12.5%의 자료를 가지고 있다고 얘기할 수 있다.
  • 차원이 커질수록 한정된 자료는 커진 차원의 패턴을 잘 설명하지 못한다.
  • 차원이 증가함에 따라 model의 complexity가 증가한다.

차원 축소의 필요성

KNN

KNN이 있다고 가정할 때, 쓸데없는 변수가 추가가 된다면 model의 성능에 악영향을 끼친다.

  • 상관계수가 매우 큰 서로 다른 독립변수
  • 예측하고자 하는 변수와 관련이 없는 변수

따라서 성능을 높이기 위해 차원축소를 진행한다.

 

이외의 방법

  • 변수 선택법
  • penalty 기반 regression
  • CNN
  • Drop-Out & Bagging

공분산 행렬

정의

X1, X2이 음의 상관관계를 가지므로, 둘의 공분산은 음수일 것.

공분산이란 Cov(X1, X2)는 X1과 X2와의 상관관계를 보이는 지표이다.
Cov(X1, X2) = E(X1-μx1)(X2-μx2) 를 의미한다.
X1이 평균보다 증가 or 감소할 때, X2가 증가 or 감소하면 Cov 값은 양수이다.
X1이 평균보다 감소 or 증가할 때, X2가 증가 or 감소하면 Cov 값은 음수이다.

위에서 X가 centering 되어있다면 Cov(X) = E((X1-0)(X2-0)) = (XtX)/(n-1) (n-1이 평균으로 나눈 값.)

 

공분산의 행태 파악

positive definite

  • 공분산 행렬은 점들을 대칭이동시킨다.
  • 방향이 바뀌지 않는다.

negative definite

  • X1, X2의 분산이 공분산보다 작음으로써 방향이 반대로 바뀐다.

행렬식 = 0

행렬식이 0인 경우, y=ax 에 해당하는 선분으로 향한다.


PCA (Principal Component) 개념

목표 : 차원 줄이면서 정보 손실을 최소화, 중복된 정보를 없애 차원을 축소

PCA

더 적은 개수로 데이터를 충분히 잘 설명할 수 있는 새로운 축을 찾아냄

이는 축을 하나 설정함으로써 그 축 하나로 설명이 가능하다. -> 변수가 하나만 있어도 가능이다.

 

PCㅁ 과정

PC 를 얻는 방법

  1. 공분산 구조를 data의 산점도로 파악.
  2. data를 centering 시킨다.
  3. 공분산이 데이터의 형태를 변형시키는 방향의 축과 그것에 직교하는 축을 찾아내는 과정.

PC Score 의미

PC score

  • 찾아낸 새로운 축에서의 좌표값을 의미
  • 새로운 축에 내린 정사영

SVD & PCA와의 관계

2020/03/06 - [machine_learning/natural language] - 자연어 처리 : SVD 정리

 

자연어 처리 : SVD 정리

선형대수학에서 실제로 SVD하는 과정은 꼭 익혀보길 바란다. 공돌이의 수학노트에서 원형에서 타원형으로 했을 때, x,y가 Ax,Ay로 변할 때 수직인 부분만 관찰한 것을 기억하자. https://www.youtube.com/watch?v..

mambo-coding-note.tistory.com

2차원의 경우 공분산이 나타내는 타원의 장축과 단축. -> SVD는 "직교하는 고유벡터들이 선형변환을 하여도 다른 직교하는 고유벡터가 생성이 되는가를 확인. 따라서 SVD와 PCA와의 관계를 설명이 가능하다.

 

SVD에서 v가 eigen vector인 이유

eigen vector는 우리가 새로 잡은 고유벡터 PC1, PC2 ----PCx 이다.

eigen value는 각 고유벡터들의 scaling force를 의미하며, 그 벡터들의 방향으로 data들의 정보의 양, 즉 data들이 그 고유벡터들을 향해 얼마나 몰려있는지를 얘기해준다.


PCA의 심화적의미

위의 이미지는 글자에 대한 data에 대해 PCA를 진행한 plot이다.

 

우리는 PCA를 진행한 후, 고유벡터들이 정확히 뭘 의미하는지를 모르기 때문에 data들을 관찰하여 고유벡터들, PC의 성질을 해석을 할 수 있다.

댓글