본문 바로가기
2020_1학기_알고리즘응용

Week05 Principal Components Analysis

by 매화of사군자 2020. 6. 6.

Demension Reduction

우리가 세상에서 얻는 데이터들은 수 많은 component들로 이루어진 vector로 나타낼 수 있다. 고차원으로 이루어진 데이터를 처리하는데에는 많은 자원과 시간이 필요하다. 그러므로 우리는 어떻게 고차원의 데이터를 저차원의 데이터로 변환할 수 있는지에 중점을 두고 살펴볼 것이다.

 

Feature Selection

- 고차원의 데이터 중에서 데이터를 표현할 때 중요한 feature를 뽑아 그 값을 그대로 사용하는 방법

 

Feature Projection

- 고차원의 데이터를 어떠한 수학적 방법을 통하여 다른 차원으로 transform 시키는 방법

- demension reduction의 대표적인 방법

 

Feature Projection methods

 

Principal Components Analysis(PCA)

PCA를 설명하기 위해서 세 가지의 큰 범주로 나누었다.

 

1. X --> Y ( PX = Y )

- Linear Data Projection

- X를 선형변환(P)을 통해서 Y로 만들어준다.

- 어떠한 선형변환(P)인지는 아래에서 설명한다.

 

2. Basis Change

- 데이터를 더 잘 표현할 수 있는 축으로 바꾸어준다.

- 간단히 설명하자면 아래와 같이 설명할 수 있다.

 

지금 상황에서는 빨간색 공의 움직임을 관찰하기 위해 카메라 A, B, C 총 3대가 공을 촬영하고 있다.

하지만 잘 생각해보면 빨간색 공은 xy평면에서 x축의 변화만 있을 것이다. 그러므로 카메라 3대가 아닌 x축에서 찍는 카메라 1대만 있다면 빨간색 공의 움직임을 정확히 관찰할 수 있을 것이다.

 

3. Minimize Redundancy

- 중복된 데이터를 최대한 없앤다.

 

어떠한 2개의 데이터의 A, B가 있다고 가정, A와 B 데이터의 중복성을 알아내기 위한 방법 중 하나는 2개의 데이터의 상관관계를 알아보는 것이다. A의 값이 증가할 때 B의 값 또한 증가하고, A의 값이 감소할 때 B의 값 또한 감소한다면 2개의 데이터는 관련이 있는 데이터라고 생각할 수 있다. 반대의 경우에는 2개의 데이터는 관련이 없는 데이터라고 생각할 수 있다.

 

그렇다면 2개의 데이터의 상관관계를 어떻게 알 수 있을까? 바로 고등학생 시절에 배운 확률과 통계 파트에 나오는 공분산을 이용하는 것이다. 공분산은 2개의 확률변수의 상관정도를 나타내는 값이다.

 

공분산

A와 B의 데이터가 관련이 없다면 값이 0이 될 것이고 그와 반대로 관련이 있다면 0이 아닌값이 될 것이다.

 

- 공분산 행렬

데이터 x = (x1, x2, x3

정리

다시 1번으로 돌아가 P에 대해서 알아볼 시간이 된 것 같다.

PX = Y에서 Y가 되어야 할 조건을 먼저 생각해본다면 Y의 데이터들은 서로 상관관계가 없어야 할 것이다.

즉 Y의 공분산 행렬은 대각선 부분을 제외한 데이터가 0인 행렬(diagonal matrix)이 되어야한다. 이 행렬을 가중치에 따라 정렬한 후 가중치가 낮다고 생각하는 데이터를 제거하면 행렬 P가 된다.

 

 

PCA illustration

 

관련 패키지

from sklearn.decomposition import PCA

'2020_1학기_알고리즘응용' 카테고리의 다른 글

Week08 Viterbi Search  (0) 2020.06.07
Week07 Representation Learning and Deep Learning  (0) 2020.06.07
Week04 Clustering  (0) 2020.06.05
Week03 Distance metric  (0) 2020.06.02
Week02 Tools for Data Understanding  (0) 2020.06.02

댓글