brunch

You can make anything
by writing

C.S.Lewis

by 쿤데라 Apr 14. 2019

데이터 사이언스 세상에 발을 들이다 (3)

철학 심화 전공 문과 출신 에디터의 데이터 사이언스 입문기

데이터 사이언스 입문반 3주차. 주말 한 번만 더 지나면 입문반 코스가 끝나게 되니 다들 다음 단계에 대한 고민이 많아 보였다. 실전반으로 점프를 해야 하는데 데이터 분석 과정을 밟을 것인가 아니면 머신러닝 과정을 밟을 것인가. 기본적으로 입문 과정 이수자들을 대상으로 해 따라가는 데 아무런 문제가 없다고는 하지만, 그간 수업에 대한 체화가 아직 한참 부족하다는 걸 스스로 잘 알아 입문 과정 수료 이후 3주 정도의 복습 시간을 갖기로 했다. 그래봤자 주말 3번을 잘게 쪼개야 하겠지만.

데이터 시각화를 배웠다. 엑셀로 봤을 때는 절대 눈에 보이지 않는 현상을 우리는 데이터 시각화를 통해 발견할 수 있다. 가령 타이타닉 생존자 데이터를 객실 등급별로 시각화해서 보니, 1등급 내에서도 지불 금액에 따라 생존율에 차이가 나타났고, vvip 등급 같은 특실이 따로 존재했음을 유추할 수 있었다. 

시각화가 재밌는 게, 되게 다양한 패키지가 있다. 패키지마다 장단점이 있고, 취향도 탄다. 그중에서 seaborn 패키지를 배웠다. 이걸 쓰면 굉장히 짧은 몇 줄의 코드만으로도 시각화할 수 있다. 딱 다섯 개만 습득하면 대부분의 것은 얼마든지 시각화할 수 있다. 그 외의 것들은 그냥 seaborn 웹사이트 갤러리에서 코드 따다가 입력하면 된다. 

새로운 경진대회에 참가했다. Bike Sharing Demand. 워싱턴에 있는 자전거 대여 회사가 개최한 대회로, 기존의 데이터를 바탕으로 특정 기간의 자전거 대여량을 예측하는 거다. 당연히 예측을 잘할수록 점수가 좋다. 주어진 조건은 계절, 공휴일 우무, 일하는 날, 날씨, 온도, 습도 등으로 총 9개. 흥미롭게도 우리가 맞춰야 할 값이 숫자의 높고 낮음인지, 아니면 1과 0으로 딱 떨어지는 분류형인지에 따라서 사용할 머신러닝 알고리즘이 달랐다. 이번 경진대회 같은 경우는 자전거를 타느냐 마느냐의 분류가 아닌 해당 시즌의 자전거 대여량이 많고 낮을 것인지를 예측하는 것이기 때문에 지난주에 쓴 DecisionTree 알고리즘이 아닌 RandomForestRegressor 알고리즘을 사용했다. 어떤 머신러닝을 사용하느냐에 따라 똑같은 코드를 짜더라고 확연하게 점수 차이가 났다.

머신러닝이 그렇게 똑똑하면, 우리는 왜 데이터 분석을 해야 할까? 그냥 Tree에 데이터 집어넣으면 될텐데. 이유는 간단하다. 이유는 간단하다. 세상에 완벽한 머신러닝, 인공지능은 존재하지 않는다. 예측값과 정답에 차이가 벌어질 수밖에 없는 거다. 완벽한 예측은 없다. 우리는 데이터의 어떤 특징을 가지고 예측하는 건데, 그 특징을 트리가 발견하지 못할 수도 있다. 그래서 우린  탐험적 데이터 분석(Exploratory Data Analysis)을 한다. 탐험적 데이터 분석이야말로 데이터를 늦게 배운 사람이 빨리 배운(석, 박사)를 따라잡기에 좋은 방법이다. 이게 이론화가 어려운 분야라(관련 책이 마지막으로 나온 게 1977년이다) 빨리 배운 사람들과의 스타트 라인이 똑같다.


재밌는 건 이때부터가 창의력 싸움이다. 물론 창의성을 발휘하기 이전에 충분한 데이터 검토가 필요하고, 대부분의 캐글 우승자들은 이틀에서 길게는 일주일 동안 코드 한 줄 안 짜고 데이터만 들여다본다. 관련 분야의 경험이 여기서 빛을 발하는데, 나는 그 분야에 대한 경험이 풍부하니까 똑같은 데이터를 봐도 다른 사람들은 전혀 생각지 못한 아이디어들이 떠오르는 거다. 하지만 아직은 초짜 중의 초짜라(그래서 4인 1조로 작업을 하기도 했지만) 한 시간 동안 쓸만한 아이디어는 하나밖에 내지 못했고, 그마저도 아직 파이썬이 손에 익지 않아 구현할 수가 없었다고 한다… 복습을 필요성을 이렇게 느낍니다. 이제 다음 주면 벌써 마지막 수업이다. 





매거진의 이전글 데이터 사이언스 세상에 발을 들이다 (2)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari