본문 바로가기

카테고리 없음

[머신러닝] Curse of Dimensionality (차원의 저주)

축의 개수 = 변수의 수 = 차원

변수의 수가 늘어난다 = 차원의 늘어난다 = 데이터 공간이 커진다

 

- 차원의 저주 / Curse of Dimensionality

: 변수의 수가 늘어나 차원이 커지면서 발생하는 문제

차원이 증가하면 그 데이터 공간이 커지기 때문에 이를 채우기 위한 데이터 건수도 증가

즉 변수가 늘어나면 데이터 공간을 채우는 비율(%)이 줄어들기 때문에 변수가 많아질 수록 분석에 요구되는 데이터 건수도 증가

(참고로 1가지 조건 안에 최소 30건의 데이터가 있는 것이 좋다고 한다. 변수 A, B, C를 수집했다고 할 때 이를 만족하기 위해서는 최소한 27 * 30 = 810건의 데이터가 필요)

충분히 공간을 표현할 만큼 큰 데이터 수집 없이, 적은 데이터로만 이 공간을 표현하는 경우 과적합(Overfitting)이 발생할 수 있다.

 

이러한 차원의 저주를 해소하기 위한 방법

1. 차원축소

1) Feature Selection

중첩되는 변수를 찾을 때 주로 사용하는 방법은 상관분석(Correlation)이다. 상관계수가 높거나 VIF(분산팽창지수, Variance Inflation Factor)가 높은 중첩되는 변수들 중 하나만을 선택한다.

 

타겟, 즉 종속변수에 영향을 크게 주는 중요한 변수는 랜덤포레스트(Random Forest) 또는 XGBoost 등을 이용해 Variable Importance를 찾아 몇 가지 변수 선택

 

2) Feature Extraction

Feature Selection은 직역하자면 '변수 추출' 정도로 해석할 수 있다. 이 방법은 변수 A, B, C, D, E 중 A와 D 변수만 고르는 Feature Selection과 다르게 모든 변수를 조합하여 이 데이터를 잘 표현할 수 있는 중요 성분을 가진 새로운 변수를 추출한다. A, B, C, D, E가 조합되어 가, 나, 다, 라, ... 등이 된다는 뜻이다.

 

이렇게 변수 추출을 위해 주로 사용되는 방법은 주성분분석(PCA, Principal Component Analysis).

 

 

2. 데이터 충분히 수집 및 data augmentation을 통한 데이터 증가 

 

반응형