PCA요약

차원의 저주를 막기위해 PCA를 분석하는데 

이때 공분산이 가지는 최대 고유벡터를 가지고 데이터를 선형변환(정사영) 한다.


공분산은 변수간의 연관성 정도를 파악해준다.

공분산이 가지는 최대 고유벡터를 쓰는 이유는 고유벡터에 데이터를 정사영 했을때 분산이 최대가 되기 때문이다.

분산이 최대가 되어야하는 이유는 정사영후 데이터가 겹치지 않아야 원본 데이터와 최대한 동일한 효과를 낼수 있기 때문이다.


따라서 우리가 알아야 할 수학적 방법은 주어진 데이터에 대해서 어떻게 하면 variability가 큰 방향을 가리키는 벡터를 찾을 수 있을 것인가에 관한 것이다. <- 고유벡터 구하기(공분산구하기)


공분산이란 둘 이상의 변량이 연관성을 가지며 분포하는 모양을 전체적으로 나타낸 분산으로 정의


공분산행렬(각변수간의 연관정도를 볼수있음 / 내적활용)에서 가장 큰 고유벡터와 고유값


차원의저주(Curse of dimensionality)

차원의 저주는 데이터 과학에서는 차원이 증가함에 따라 차원 내의 부피도 증가하게 되는데, 데이터가 해당 공간 내에 놓일 수 있는 위치는 한정되게 되어 있어 빈 공간(sparsity)이 많아지기 때문에 발생한다. 아래의 그림을 보도록 하자. 이처럼 관찰한 데이터의 차원이 증가할수록 공간의 volume의 크기는 기하급수적으로 증가하게 되고 빈 공간도 많아지게 되는 것이다. 그만큼 불필요한 공간이 남아있게 되어 계산량도 증가한다. 이것이 큰 차원의 데이터를 다룰 때, 어떻게 하면 데이터의 전반적인 구조는 바꾸지 않고 중복적인 정보를 가지는 차원을 감소시켜야 하는 이유이다.




공분산행렬


XTX 행렬이 가지는 문제는 숫자 n이 커질수록 내적 값은 계속 커진다는 것이다.(계속 합해지니까 값이 계속 커짐) 

따라서 내적값들을 n으로 나누어주면(값의 평균을 구하면) 그 문제를 피할 수 있을 것이다. 


각 원소의 의미는 Xi와 Xj가 얼마나 연관성이 있는지를 보여준다


1) 각원소가 양수이면 양의 상관관계

2) 음이면 음의 상관관계

3) 0이면 서로 독립관계임을 뜻한다. (두 변수가 독립적이라면 공분산은 0이 되지만, 공분산이 0이라고 해서 항상 독립적이라고 할 수 없다.)

 
공분산의 성질
공분산의 많은 성질은 내적이 가지는 성질과 유사하다.:
(1) 이중선형연산: 상수 a와 b 그리고 확률변수 X, Y, U, Cov(aX + bY, U) = a Cov(X, U) + bCov(Y, U)
(2) 대칭성: Cov(X, Y) = Cov(Y, X)
(3) 양수값: Var(X) = Cov(X, X) ≥ 0이고 Cov(X, X) = 0 이란 것은 X가 상수확률변수(K)라는 뜻이다.
공분산은 확률변수들의 벡터 공간 상에서의 내적을 의미한다. 벡터에서 적용되는 벡터합 X + Y 및 aX와 같은 스칼라곱의 성질도 지닌다.

고유벡터/고유값

어떤 N x N행렬 A에 대하여 AK=λK가 만족하는 K를 고유벡터, λ고유값이라고 한다.

그리고 위 식은 (A−λI)K=0을 만족하고

벡터 K=[k1,k2,⋯,kn] T에 대해 벡터 K가 nontrivial solution을 가지기 위한 필요충분 조건은 det(A−λI)=0(I는 단위행렬)이다.

고유벡터와 고유값은 다음과 같은 의미를 가지고 있다.

K = 선형변환 A를 했을 때, 그 크기만 변하고 방향이 변하지 않는 벡터

λ = 그 K 벡터의 크기는 얼마만큼 변했는지

기본적으로 고유벡터는 선형 변환에 대한 주축을 찾는 문제를 해결할 수 있게 해줄 것이다. 
주축(principal axis)을 찾는 문제는 PCA등의 분석법에서 굉장히 중요한 issue가 되게 된다. 
또한, eigen-시리즈는 더 나아가서 양자역학에서 굉장히 중요한 역할을 한다고 한다.

차원 감소의정도

다차원의 데이터에서 차원 감소를 시켜주는 것이 PCA의 주목적인 것은 알겠지만, 

그렇다면 고차원의 데이터를 어디까지 차원감소 시켜주는 것이 타당할까?


가령 d차원의 데이터를 m차원까지 감소시켜준다고 해보자 (여기서 m<d). 

d 차원의 데이터이므로 총 d개의 eigenvalue를 계산 할 수 있다. 

(물론 데이터의 공분산 행렬이 full rank임을 가정했을 때이다.)


이것을 λ1 ,λ2, ⋯, λd로 표현해주자 (여기서 λ1≥λ2≥⋯,≥λd)


1. 전체 데이터의 variance 중 가령 90%만큼을 설명하는 차원까지 감소


인 적절한 m을 찾아 그 차원까지 감소시켜주는 것이다.


2. scree plot

이 방법은 다소 주관적일 수 있는데 2차원 plot을 그리는데 x 축에는 dimensions, y 축에는 해당 dimension의 eigenvalue를 기재한다. 

예를 들어 다음과 같은 그림일 수 있다.


여기서 보면 세 번째 eigenvalue부터 갑자기 꺾이는 현상이 보인다.


그러면 이때는 3차원까지 차원 감소를 시켜준다는 식으로 결정하는 것이 scree plot을 이용한 방법이다.

 scree plot은 PCA외에도 많은 method에서 사용된다.




[참고] 

https://wikidocs.net/7646

https://wikidocs.net/4050

http://yamalab.tistory.com/32

http://rfriend.tistory.com/145

https://ko.wikipedia.org/wiki/%EA%B3%B5%EB%B6%84%EC%82%B0

'머신러닝 > 스터디 정리' 카테고리의 다른 글

경사하강법  (0) 2018.08.17
상관계수  (0) 2018.08.16
정규분포 표준화  (0) 2018.08.13
Aprior 알고리즘  (0) 2018.08.12
K-means 알고리즘  (0) 2018.08.12

+ Recent posts