6-1. 차원축소 개요

jwKim·2023년 1월 23일
0

차원축소(Demension Reduction) 개요

차원 축소는 많은 feature로 되어있는 데이터 셋의 차원을 축소하여 새로운 차원의 데이터 셋을 생성하는 것이다. 이 때 데이터의 차원은 feature의 개수를 말하는데, 아래와 같이 feature가 3개인 데이터를 시각화 한다고 하면, 3차원에 그릴 수 있다. 이를 통해 "feature의 개수 = 차원 수"임을 알 수 있다. (4차원 이상은 그릴 수 없기 때문에 3차원을 예시로 듦)

img

< 출처 >
naver blog - 3차원 데이터 그리기

feature의 개수가 데이터의 차원이라는 것은 알았는데, 그렇다면 feature의 개수는 왜 줄여야할까? 데이터가 차원이 높으면 아래와 같은 이슈가 발생한다.

  • 데이터 차원이 증가할 수록 데이터 간의 거리가 기하급수적으로 멀어진다.(차원의 저주)
  • 데이터 간의 거리가 멀어지면 sparse한 구조가 되며 모델 학습에 악영향을 준다.
  • feature가 많으면 상대적으로 feature끼리 관계가 있을 확률이 큰다.(다중공산성 문제)

< 차원의 저주와 다중공산성 문제 >

[ 차원의 저주 ]

  • 차원이 한 개 늘어날 때마다 데이터 밀도가 급격하게 떨어는 현상이다.
  • 공간은 지수 연산의 형태로 늘어나기 때문이다.
    • 예를 들어 cm 단위의 공간은 2차원일 때에는 cm2cm^2, 3차원일 때에는 cm3cm^3, 4차원일 때에는 cm4cm^4이다. 이와 같이 공간(차원)이 늘어나면 지수가 늘기 때문에 차원이 늘어나기 전과 동일한 데이터 밀도를 가지려면 데이터가 기하급수적으로 많아져야한다.
    • 하지만 현실적으로 힘들어서 차원을 줄이는 방향 선택하게 된다.


[ 다중공산성 문제 ]

  • 수식으로 다중공산성에 대해 이해해보기 위해 아래와 같이 변수 3개와 각각의 계산 식이 있다고 가정해보자
변수1변수2변수3
변수 계산 식xx3z3z4x4x
  • 각 feature들은 서로 독립적이어야 함(feature를 부르는 이름 부터가 독립변수) 그런데 변수1과 변수3은 서로 연관이 있다.(변수1이 2x2x로 바뀌면 그에 따라 변수3도 8x8x로 바뀐다.)
  • 이 경우 target을 결정할 때 xx라는 정보가 두 번 들어가게 되기도 하고, feature끼리 연관이 있으므로 데이터의 변동성도 커지게 되어 예측에 어려움을 준다.

일반적으로 차원을 축소하는 방법은 feature selection과 feature extraction이 있다.

  • feature selection : 주요한 feature들만 선택하기
  • feautre extraction : 여러 개의 feature들을 압축하기

여기서 feautre extraction의 경우 단순히 여러 개의 변수를 하나로 합치는 것이 아니라 데이터의 특성을 잘 보여주는 새로운 변수를 발견하는 것이다.

차원 축소는 단순히 feature의 개수를 줄이는 것이 아니라 데이터의 특성을 더 명확하게 하여 학습에 도움이 되게 데이터셋을 변경하는 일이다. 이미지 분석, 텍스트 분석 등 다양한 분야에서 과적합을 피하고 모델의 예측 성능을 높이기 위한 방법으로 사용되고 있다.


0개의 댓글