Data Science란?
요즘 많은 분야에서 사용되고 있는데, 내가 느끼기에는 크게 아래 두 가지 일을 하고 있는 것 같다.
- Data를 기반으로 의미있는 인과관계를 이끌어내기 위함
- Data를 기반으로 앞으로 일어날 법한 일을 예측하기 위함
예전부터 우리는 과거의 정보나 일부의 정보를 이용해왔지만, 그때는 지금과 같이 성능 좋은 기계가 없었기에 다소 제약이 있었다. 최근 computing power의 향상으로 인해 그러한 제약이 무너지며 데이터를 조금 더 자유롭게 다룰 수 있게 되었다.
이러한 상황의 변동에 의해 Data Science라는 분야가 나타났을 뿐, 없던 학문이 갑작스레 나타난 것은 아니다.
Data Science에서 사용되는 기술은 수학, 통계학, 컴퓨터공학, 기계학습, 데이터마이닝 등 다양하다.
최근 많은 광고에서 쉽게 Data Scientist가 될 수 있다고 하지만, 사실은 굉장히 어려운 분야다.
제대로 알게 되기까지 굉장히 많은 시간과 노력이 필요로 되는 학문이며, 앞으로 공부하며 관련되는 자료들을 꾸준히 포스팅할 예정이다.
Data Science Process
Data Science Process는 많은 글에서 다루고 있는데, 다 조금씩 차이가 있는 듯 하다.
Data 수집부터 시작하느냐, 중간 단계를 얼마나 세분화하느냐, 서비스하는 부분을 어떻게 분리하느냐 등의 분기에 따라 차이가 나는 것 같다.
내가 생각하는 Data Science Process는 아래와 같다.

1. 분석 문제 정의
이 단계는 분석으로 해결할 문제를 정의하는 단계이다.
모든 일에 목표가 있어야 하듯이, 어떤 문제를 해결하고 싶은지 타겟 목표를 정한다고 생각하면 되겠다.
Business Problem 정의 후 분석 문제 정의를 한다거나 하는 식으로 이 단계도 여러 단계로 나뉘기도 하는데, Data Science Process의 단계를 정의하는 것이기에 분석 문제 정의만 생각해도 충분하다고 여겨진다.
2. Data 이해
데이터를 수집하고, Data에 대해 기본적인 이해를 진행하는 단계이다.
필요한 데이터를 얻고, 해당 도메인에서 데이터가 어떤 의미를 갖는지, 가장 필요한 데이터가 무엇인지 등에 대해 확인하는 단계라고 생각하면 되겠다. 본격적으로 데이터를 탐색하기 전에 주요한 의미를 찾는 과정이다.
3. Data Preprocessing
데이터를 가공하는 과정이다.
사실 이 과정에 가장 많은 시간을 쏟게 된다. 모델에 아무 데이터나 넣는다고 모든 게 뚝딱 해결되는 것이 아니기 때문에(개념상으로나, 의미상으로나) Feature들의 특성을 파악하고, 중요한 Feature를 고르고, 모델에 적합한 방식으로 값을 바꾸는 이 과정은 중요할 수밖에 없다.
4. Data Modeling
준비된 데이터를 이용해 분석 모델을 만들고 모델을 평가하는 과정이다.
모델링과 모델 평가는 떼어낼 수 없는 작업이라고 생각해 한 단계로 통합시켰다. 모델을 만들고, 해당 모델이 원하는 결과를 뱉어내는지 평가하고, 다시 모델을 업데이트하는 과정은 계속되는 반복 작업으로 한 단계로 보아도 무방할 것이라 생각한다.
현재 가지고 있는 데이터와 적합하고, 자신이 풀고자 하는 분석 문제와 맞는 모델을 선택하고 발전시키는 과정이다. 단순히 머신 러닝만을 말하는 것이 아니라, 통계 모델이나 알고리즘일 수도 있다. 이 프로세스의 목표는 최신 기술을 사용해보는 것이 아니라 기존의 데이터로부터 우리의 문제를 해결하는 최적의 방법을 찾는 것이기 때문이다.
이 단계에서 가장 중요한 점은, 최근에 알려진 어렵고 복잡한 모델을 쓴다고 해서 더 좋은 결과가 나오는 게 아니라는 것을 아는 것이다. 실제로 서비스를 하고 있는 여러 회사에서 오히려 아주 간단한 기본 모델을 사용하는 경우가 많다.
최신의 모델이라고 모두 좋고, 간단하고 오래된 모델이라고 해서 모두 나쁜 것은 아니다. 장점이 있다면 단점이 있다. 그 장단점을 잘 고려해서 적합한 모델을 찾고 적용하는 것이 중요하다.
단순히 여러 모델에 같은 데이터를 넣어보고 좋은 결과를 낸 모델을 사용하는 것도 필요하긴 하지만 그것이 다는 아니다. 모델을 제대로 이해하고 사용하는 것이 아니라면 단순히 여러 모델 중 하나를 고르는 작업이 Data Modeling이라고 오해하기 쉽다.
여러 모델들을 비교해 가장 적합한 모델을 찾는 것도 중요하지만 고른 모델이 내부에서 어떻게 작동하며 그 작동 방식이 어떤 의미인지 이해하고, 필요하다면 자신의 목적에 맞게 변경하는 작업이 필요하다. 그것이 이 단계에서 진행되는 일이다.
5. 배포
위의 단계를 걸쳐 나온 모델을 배포하는 과정이다.
모델 그 자체가 배포의 목적이라면 모델을 실제로 API 호출 등으로 배포하는 과정이 이 단계에 해당한다. 모델 그 자체가 아닌 모델에서 도출한 인사이트가 목적일 경우에는 시각화를 통해 정보를 제공하는 것도 이 단계에 해당한다. 이 부분에서 Communication 능력이 굉장히 중요시된다. 데이터와 결과 사이의 인과관계를 이해하지 못하는 사람도 이해할 수 있도록 정보를 제공할 수 있어야 하기 때문이다.
어떤 일이든 쉬운 일은 없겠지만, 다섯 개로 축약된 모든 단계 하나하나가 쉽지만은 않다.
앞으로 꾸준히 공부하며 관련되는 자료들을 꾸준히 포스팅해 완벽하게 각 단계의 속을 채워보고자 한다.