logo

데이터과학에서 차원축소란? 📂데이터과학

데이터과학에서 차원축소란?

정의

데이터 집합 $X \subset \mathbb{R}^{n}$이 주어졌다고 하자. $m \lt n$에 대해서 다음과 같은 매핑을 차원 축소dimension reduction라 한다.

$$ r : X \to \mathbb{R}^{m} $$

혹은 주로 머신러닝에서, 퍼포먼스를 가능한 한 유지하며 입력 변수를 줄이는 방법의 일체를 차원 축소 기법이라 한다.

설명

차원축소란 이름 그대로 벡터의 차원을 줄이는 것을 말한다. 데이터를 더 쉽고, 더 직관적으로 이해하기 위해서 사용하는 경우가 많다. 차원을 줄이는 방법은 알고리즘마다 다르다. 특정 성분을 그대로 삭제해버릴 수도 있고, 기존의 데이터를 가지고 정해진 규칙에 따라 차원이 작은 새로운 데이터를 만들어낼 수도 있다. 다음과 같은 기법들이 있다.

목적

시각화

우리는 4차원 이상의 데이터를 효율적으로 시각화하는 것이 사실상 불가능하다. 심지어 3차원의 데이터 조차도 그 형태에 따라서 시각화에 어려움을 겪을 수 있다. 시각화에 어려움을 겪는다는 말은 데이터의 특징을 잘 표현하는 그림을 그리기 어렵다는 말이다. 3차원 데이터라면 시점에 따라서 그 형태가 다르게 보일 것이다. 이럴 때 차원을 줄여서 그려보면 데이터의 특징을 파악하기 쉬울 수 있다. 아래의 그림은 같은 데이터이지만 보는 방향에 따라서 그 형태가 현저히 다른 예시를 보여준다. 오른쪽의 그림은 왼쪽의 데이터를 $xy$-평면으로 사영시킨 것이다.

4차원 데이터인 아이리스 데이터 셋을 다음과 같이 여러 2차원 그림으로 쪼개어 시각화하는 것이 데이터 과학을 다루는 많은 교재에서 소개된다.

선택과 집중

덜 중요한 정보를 배제하여 더 중요한 정보에 집중을 하기 위해 차원 축소를 사용할 수 있다. 여기서 말하는 "덜 중요한 정보"란 노이즈로 취급되거나, 중복된 정보를 말한다. 가령 아래의 왼쪽표에서 첫번째 열을 보면 모든 데이터에 대해서 같은 값임을 알 수 있다. 또한 두번째 열과 세번째 열은 서로 다른 값이지만 실질적으로는 같은 값임을 알 수 있다. 따라서 첫번째 열과 두번째 (혹은 세번째) 열을 버리는 식으로 차원 축소를 할 수 있다. 또한 오른쪽표는 대구의 날씨 정보를 정리한 것이다. 얼핏보면 여기에서 불필요한 정보는 없는 듯 하지만 "일교차 = 최고기온 - 최저기온"이므로 이 셋은 선형독립이 아니며, 실제로 회귀분석시 에러를 만날 수 있다. 따라서 이 경우에는 다중공선성을 제거하기 위해 네번째 열을 삭제하는 것이 차원축소이다.

학교학년소속이름
하이브고등학교3학년프로미스나인이나경
하이브고등학교3학년프로미스나인백지헌
하이브고등학교2학년르세라핌김채원
하이브고등학교2학년르세라핌허윤진
하이브고등학교1학년뉴진스해린
하이브고등학교1학년뉴진스민지
날짜최고기온최저기온일교차강수확률
19일32º24º60%
20일33º22º11º0%
21일32º23º30%
22일30º21º60%
23일31º24º60%
24일33º25º60%

경량화

데이터의 차원이 줄어들면 그만큼 저장해야할 숫자가 적어진다는 뜻이므로, 데이터 자체의 용량이 줄어든다. 인공신경망의 경우, MLP는 선형층으로 이루어져있어 입력 데이터의 차원이 모델의 파라매터 수에 영향을 끼친다. 이 경우에 차원 축소를 모델의 파라매터를 줄이기 위해 사용할 수 있다. CNN과 같이 입력 데이터의 차원이 모델의 파라매터 수에 영향을 끼치지 않는다고 하더라도, 계산 속도에서 이점을 줄 수 있다.

과적합 방지

적절한 차원 축소는 오버피팅을 어느정도 막을 수 있는 것으로 알려져있다.