gimmesilver's blog

Agbird.egloos.com

포토로그



Kaggle - 세계적인 데이터 예측 분석 경연 대회 데이터분석

 Kaggle 이라는 사이트가 있다(https://www.kaggle.com). 이 사이트는 한마디로 말하면 '데이터 예측 분석 경연 대회' 사이트이다. 
 대부분의 문제가 동일한 형식을 갖고 있는데, 각 문제마다 문제와 관련된 배경 지식 및 데이터에 대한 기본적인 설명과 함께 예측 모델을 만드는데 필요한 학습 데이터와 예측에 사용할 테스트 데이터를 제공한다. 대회 참가자는 학습 데이터로 예측 모델을 만든 후 주어진 테스트 데이터에 모델을 적용한 결과를 사이트에 올린다. 참가자가 결과를 업로드하면 그 즉시 결과를 채점하며 미리 정해진 기준으로 점수를 매긴다(보통 RMS나 AUC를 사용한다). 그러고 나면 각 참가자가 달성한 최고 점수를 기준으로 전체 순위가 실시간으로 업데이트된다.
 모든 문제는 정해진 기간이 있으며 이 기간 내에 여러 번 시도를 할 수 있다(다만 마구잡이로 찍는 어뷰징을 막기 위해 제출 횟수는 1일 5회로 제한된다). 

 예를 들어 스팸 필터링을 주제로 한 문제라면, 먼저 학습 데이터로 수만개의 이메일 데이터와 각 이메일이 스팸 메일인지 여부를 표시한 데이터를 제공한다. 그러면 참가자는 이 학습 데이터를 이용해서 스팸 메일과 일반 메일을 구분하기 위한 가장 좋은 알고리즘(혹은 모델)을 만든다. 그러고 나서 테스트를 위해 제공된 또다른 수만개의 이메일 데이터에 대해서 각각의 이메일이 스팸 메일인지 여부를 표시한 결과를 만들어서 사이트에 제출한다. 그러면 사이트에서는 제출 즉시 해당 예측 데이터가 얼마나 정확하게 스팸 메일을 맞췄는지 점수와 함께 현재의 등수를 알려준다. 

 비정기적으로 새로운 문제가 올라오는데, 단순히 미리 정해진 feature를 이용해서 regression 이나 classification을 하는 문제도 있지만 좀 더 현실적인 문제들도 많아서 이미지나 자연어 처리 등 폭넓은 데이터 정제 기술을 필요로 하는 어려운 문제도 많이 올라온다. 게다가 주제도 굉장히 다양한데, 얼마전 올라온 문제 중에는 사람들의 안구 사진을 주고서 당뇨병 환자를 맞추는 문제나 수만 개가 넘는 프로그램의 어셈블리 코드 파일들을 주고서 어떤 프로그램이 악성 코드인지 맞추는 문제도 있었다.

 무엇보다 이 사이트의 문제가 매력적인 것은 각 문제마다 상위권(대략 1~3등) 참여자에게 꽤 괜찮은 보상이 주어진다는 것이다. 각 문제의 난이도나 성격에 따라 보상이 다른데 대체적으로 좀 난이도가 있는 문제들은 1만 ~ 10만 달러, 좀 쉬운 문제는 100~1000달러 정도 된다(앞서 언급한 당뇨병 환자 예측 문제는 10만 달러였다). 이런 상금은 보통 해당 문제를 낸 회사나 단체에서 제공하는데 어떤 회사에서는 입상자에게 '채용'을 보상으로 문제를 내기도 한다.

 물론 이런 짭짤한 보상이 주어지는 문제는 대부분 일반 사람들이 풀기 꽤 어렵기도 할 뿐더러 상위권 등수로 올라가기엔 엄청 경쟁이 치열해서 해당 기간 내내 이 문제에 올인하지 않고선 입상을 꿈꾸기 힘들다. 그래서 나같은 가망없는 일반인을 위해 연습 및 학습을 목적으로 한 좀 더 쉬운 문제들도 제공하고 있다(그리고 이런 문제들은 당연히 1등을 해도 보상이 없다). 
 하지만 이런 학습용 문제들도 다양한 성격과 유형의 문제들이 많이 올라오기 때문에 막연히 데이터 마이닝을 이론으로만 접하던 사람들이라면 실전에 대한 감을 익히기에 아주 좋다고 생각한다. 나도 최근에 공부를 위해 문제 풀이를 해봤는데 학습 효과도 좋고 분석 결과에 대한 피드백이 바로 있으면서 경쟁 요소까지 있다보니 조금씩 점수 올리는 재미가 제법 쫄쫄해서 나름 중독성까지 있다.

 이번에 학교에서 '패턴인식' 수업을 들었는데 교수님께 이 사이트를 소개해 드렸더니 굉장히 좋아하시면서 여기 사이트에 올라온 문제를 기말 프로젝트로 내주시는 바람에 한 학기를 아주 다이나믹하게 보냈다. 수업을 같이 들은 학생들도 처음엔 수업 내용도 잘 이해 안가는데 덜컥 프로젝트를 하게 되어 굉장히 힘들어 했지만 그래도 나중에는 다들 열정적으로 문제 풀이에 집중해서 다들 교수님의 예상을 뛰어 넘는 좋은 결과를 보였다. 100등 안에 들면(전체 참가자가 3000여팀 정도 됨) A+를 준다고 했었는데 총 6개 팀중 2개팀이 100등안에 들었다(참고로 우리팀은 29등했다). 학기 막바지에 프로젝트 최종 발표가 끝나고 나서 교수님은 자기가 지금까지 했던 수업 중에서 가장 만족스러웠다고 하시면서 앞으로 이 사이트 문제를 수업에 적극 활용하겠다고 하셨다.

 데이터 분석 특히 데이터 마이닝에 관심있는 사람이라면 꼭 한번 사이트에 가입해서 다양한 문제에 도전해보면 좋을 것 같다. 게다가 이 사이트에 있는 포럼 게시판에는 각 문제별로 참가자들이 자기가 시도했던 방법이나 분석 내용을 활발하게 공유하기 때문에 이런 정보를 통해서도 많은 것을 배울 수 있다. 

덧글

  • 우왕 2017/04/28 13:14 # 삭제 답글

    29등이라니! 대단해요!!!!
댓글 입력 영역