본문 바로가기

ML with SckitLearn

차원 축소 (Dimension Reduction) 개요

반응형

대표적인 Dimension Reduction 알고리즘은 PCA, LDA, SVD, NMF가 있습니다.

차원 축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것입니다.

 

일반적으로 차원이 증가할수록 데이터 포인트 간의 거리가 기하급수적으로 멀어지게 되고, 희소(sparse)한 구조를 가지게 됩니다. 수백 개 이상의 Feature로 구성된 데이터 세트의 경우 상대적으로 적은 차원에서 학습된 모델보다 예측 신뢰도가 떨어집니다. 

 

또한 피처가 많은 경우 개별 Feature 간에 상관관계가 높을 가능성이 큽니다. 

이런 이유로 많은 다차원의 피처를 차원 축소해 피처 수를 줄이면 더 직관적으로 데이터를 해석할 수 있습니다. 가령 수십 개 이상의 피처가 있는 데이터의 경우 이를 시각적으로 표현해 데이터의 특성을 파악하기는 불가능합니다. 이 경우 3차원 이하의 차원 축소를 통해서 시각적으로 데이터를 압축해서 표현할 수 있습니다. 또한 차원 축소를 할 경우 학습 데이터의 크기가 줄어들어서 학습에 필요한 처리 능력도 줄일 수 있습니다. 

 

※차원의 저주(Curse of Dimensonality)

Curse of Dimensionality는 데이터의 차원이 높아질수록 발생하는 여러 문제들을 통틀어 일컫는 말이다. 이런 문제가 발생하는 이유는 차원이 높아질수록 우리가 일반적으로 사용하는 Euclidean distance가 예상치 못한 방식으로 동작하기 때문이다. 예를 들어 d-차원 공간에서 임의의 점으로부터 거리가 1인 점들을 모아놓은 공간을 생각해봤을 때, d가 점점 커지면 커질수록 그 구의 대부분의 부피가 거의 surface에 가까운 엄청나게 얇은 shell에 존재하게 됩니다. 다시 말해서 아주 높은 차원의 데이터는 우리가 원하지 않는 방향으로 움직일 가능성이 크다.

 

 

일반적으로 차원 축소는 Feature Selection과 Feature Extraction으로 나눌 수 있습니다.

 

1. Feature Selection

특정 Feature에 종속성이 강한 불필요한 Feaure는 아예 제거하고, 데이터의 특징을 잘 나타내는 주요 Featurea만 선택

 

2. Feature Extration

기존 Feature를 저차원의 중요 Feature로 압축해서 추출하는 것으로 새롭게 추출된 중요 특성은 기존의 피처가 압축된 것이므로 기존의 Feature와는 완전히 다른 값으로 변환됩니다.

 

 

또 다른 설명:

비지도 학습의 또 다른 하위 분야는 차원 축소입니다. 고차원의 데이터를 다루어야 하는 경우는 흔합니다. 즉, 하나의 관측 샘플에 많은 측정 지표가 있습니다. 이로 인해 머신 알고리즘의 계산 성능과 저장 공간의 한계에 맞닥뜨릴 수 있습니다. 

 

비지도 차원 축소는 잡음(noise)데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법입니다. 이런 잡음 데이터는 특정 알고리즘의 예측 성능을 감소시킬 수 있습니다. 차원 축소는 관련 있는 정보를 대부분 유지하면서 더 작은 차원의 부분 공간으로 데이터를 압축합니다.

반응형