문과 친구를 위해서 정리해본 데이터 사이언스
Data Science는 데이터 과학이라고 번역할 수도 있지만, 영어 단어 그대로 데이터 사이언스라고 읽히고 사용되고 있다. 언젠가부터 IT가 모든 사람이 알아야할 교양처럼 여겨지고, 데이터 사이언스라는 말도 반드시 한번쯤은 들어 본 단어가 되었다. 이 글은 데이터 사이언스 과제가 보통 어떤 것을 의미하고, 어떻게 진행되는지를 이해하기 위한 글이다. 다만, 아래 내용은 학문적/공학적으로 엄밀한 개념을 설명한 것은 아니다.
데이터 사이언스를 이용해서 무엇인가를 하려고 하는 것을 데이터 사이언스 과제라고 정의할 수 있다.
데이터 사이언스 과제는 어떤 경우이든, 아래와 같은 핵심 전제를 가지고 시작한다.
주어진 데이터를 가지고, 다른 데이터를 예측할 수 있는 논리적인 방법을 찾아낼 수 있다..
예를 들자면,
사용자의 영상 시청 기록(주어진 데이터)를 가지고, 다음에 볼 영상(다른 데이터)를 예측할 수 있다.
며칠간의 날씨기록(주어진 데이터)을 가지고, 내일 날씨(다른 데이터)를 예측할 수 있다.
사용자가 쓴 글(주어진 데이터)을 가지고, 사용자의 감정 상태(다른 데이터)를 예측할 수 있다.
이런 전제하에서 데이터 사이언스 과제는 진행된다.
주어진 데이터로 다른 데이터를 예측할 수 있는 논리적인 방법을 모델이라고 부른다.
데이터 사이언스 과제의 목적은 이 모델을 찾아내는 것이고, 데이터 사이언티스트가 이 모델을 찾아내는 작업을 모델링이라고 부른다.
모델링을 하자마자 원하는 수준의 예측을 할 수 있는 경우는 많지 않을 것이다.
원하는 수준의 예측을 하더라도 더 높은 수준의 예측을 할 수 있지 않을까 하는 생각도 들 수 있다.
결국, 모델링은 지속적인 고민과 실행, 그리고 개선이 반복되는 작업이다.
그렇다면 모델링을 처음에 어떻게 시작할 수 있을까?
자신의 경험을 활용: 본인이 알고 있는 지식, 혹은 기존에 했던 프로젝트를 기반으로 해서 어떤 모델을 만들 것인지를 추측할 수 있다.
문헌 조사: 발표된 논문, 외부에 공개된 자료를 참고하여 가장 유사한 사례에 사용되었던 모델링 기법을 활용할 수 있다.
위의 방법을 사용해서 모델을 선택하고, 이후에 모델링 작업을 진행해서 예측의 성능을 확인한다.
만든 모델의 결과를 향상시키기 위해서 다음과 같은 방법들을 시도해 볼 수 있다.
Data의 품질 향상: 빠진 값, 잘못 측정된 값 등 문제가 있다고 생각되는 Data들을 보정하거나, 다시 한번 Data를 수집한다. 흔히 'Garbage (data) In, Garbage (data) Out' 이라는 문구가 인용되는 게 이 방법을 쓸 때이다.
Data Augmentation: Data의 수가 많아질수록 성능이 향상될 수 있다. 합리적인 범위 안에서 가상 Data를 생성시킬 수 있는 방법이 있다면 사용할 수 있다. 대표적으로 이미지 영역에서 유사한 이미지를 가상으로 만들어내는 방법을 쓸 수 있다.
Data로부터 뽑아낸 Data: 현재 있는 Data를 기준으로 새로운 Data를 만들어 내서 사용할 수 있다. 예를 들면 시간과 거리 Data가 있다면 그를 바탕으로 속도 Data를 계산해서 주어진 Data에 포함시킨다. 단순한 방법이지만 효과를 보이는 경우가 있다. 생각하기에 따라서 굉장히 복잡하고 수준 높은 방법을 사용할 수도 있다.
새로운 모델을 만들기 위해 다음과 같은 방법을 시도해 볼 수 있다.
모델의 교체: 2위 후보군, 혹은 여러 가지 이유로 타당해 보이는 다른 모델을 이용해 시도한다.
앙상블(ensemble): 여러 개가 조화를 이루는 앙상블처럼, 여러 모델의 값을 조합하거나,모델을 순차적으로 배치해서 성능을 향상시킬 수 있다.
데이터 사이언스는 주어진 데이터를 가지고, 다른 데이터를 예측할 수 있는 논리적인 모델을 찾아내는 일이다. 경험 혹은 외부 조사를 이용해 모델을 선택해서 시작한다. 이후 예측의 성능에 따라 데이터를 조정하거나, 모델을 조정해서 원하는 예측을 더욱 정확하게 할 수 있는 방법을 찾아내게 된다.