brunch

You can make anything
by writing

C.S.Lewis

by Joe Dec 06. 2017

무작정 Kaggle 도전기

원래 하룻강아지는 겁이 없기 때문에

[INDEX]

 1. 케글(Kaggle) 이란? 

 2. 일단 해보고 보는 XGboost 모델 적용

 3. 느낀점 / 결과




1. Kaggle 이란?



https://www.kaggle.com/


 데이터를 통해 분석이나 모델링을 연습하고자 마음 먹은 사람들에게 가장 어려운 일 중 하나는 좋은 데이터를 구하는 일이다. 한가지 다행인건 Kaggle은 기업/국가의 데이터를 제공하는 플랫폼으로 구하기 어려운 데이터를 기업과 정부에서 자발적으로 내놓으며 문제를 해결해달라고 전 세계의 데이터인들에게 부탁하고 있다. 경쟁을 통해, 데이터인들은 실력을 쌓고 놀 수 있으며, 기업은 상금을 통해 문제도 해결하고 데이터 인력을 구인하는 데에 성공하곤 한다.


 Kaggle의 컴피티션은 주로 "예측"하는 프로젝트가 많은데, 여기에 많은 머신러닝 모델들이 사용되는 것이다. 그 중에서도, 자고로 Kaggle에 입문하는 자라면 꼭 거쳐가는 컴피티션이 있는데, 바로 "타이타닉 생존자 예측"이다.


https://www.kaggle.com/c/titanic


 앉은 좌석, 나이, 성별 등의 데이터가 주어지고 누가누가 생존했는지를 보다 더 잘 맞추는 사람에게 높은 등수가 돌아간다. (근데, 잘 생각해보면 정말 무서운 데이터 예측이다.) 본래 이 세계에 발을 들이고자 하는 뉴비는 이 입문 컴피티션 부터 해결을 해야하는데, 하룻강아지가 범 무서운지를 모른다고 했던가. 일단 이 세계에서 제일 핫한걸 맛보고 싶어서 검색을 시작했다.


 그 와 중에 들어온 단어. XGBOOST.




2. 무작정 XGBOOST 적용기


 케글에서 높은 등수를 기록한 사람들의 이야기를 들어보면 항상 빠지지 않고 등장하는 단어가 있었다. 바로 "XGBOOST" 일명 묻지마 머신러닝 알고리즘 중 하나인데, 강력한 예측 효율을 보이는 부스팅기법의 일종으로 대부분의 케글러들이 이 알고리즘을 적용하여 좋은 효과를 거두고 있었다.


 그래서 적용해 본다. 묻지도 따지지도 않고..


https://www.kaggle.com/c/otto-group-product-classification-challenge


 "Otto group"의 이미 철지난 컴피티션이 하나 있기에 여기로 적용해 보기로 했다. 참고 레퍼런스 는 아래 URL.

https://www.analyticsvidhya.com/blog/2016/01/xgboost-algorithm-easy-steps/



(22-01-20 업데이트)

코드를 gist로 옮겼습니다. 링크는 아래에
https://gist.github.com/JoeUnsung/26e7269e55476f9064a646171cc3ca44








3. 결과와 느낀점




 정말 데이터 정제 하나 안하고, 파라미터 수정하나 안하고 통으로 넣고 통으로 갈았다. 그래도 결과가 나오기는 하더라. 저 위의 8.1216 부분이 내 스코어인데, 뭔가가 나오는거 자체가 신기하고 내 등수를 찾아보니 3000등이 훨씬 넘어가는 등수이긴 했다. 전 세계에 이 똑같은 프로젝트를 시도해본 사람이 3천명이 넘는구나.


 신기했던건, 심지어 내가 얻은 스코어보다 낮은 사람들도 있었다는 점. 처음에 케글을 접했을 때는 뭔가 대단한 사람들만 submission을 하고 데이터를 가지고 놀 수 있는 줄 알았는데, 수학일자무식에 코드만 좀 만질줄 아는 나도 제출은 그래도 가능하구나 싶어서 신기했다.


 나중에 안 사실이지만, xgboost라는 기법은 파라미터 튜닝에 매우 민감한 녀석이라서, 튜닝없이 그냥 쓰는건 다른 기법을 쓰느니만 못하다는 것도 알게 되었다. 아직까지는 xgboost가 그래서 왜 좋구나 하는 것을 명확하게 감을 잡기가 어렵지만, 어떠리, 첫술에 배부를 수는 없으니까. 이렇게 시작해서 수식도 들여다 보고, 파라미터들 하나하나 이해해 나가야지.


 이렇듯 스코어를 얻는 것 이상으로 중요한 것은 케글의 Kearnal을 친숙하게 들여다 보는 습관임을 알게 된 것도 수확이라면 수확이다. 같은 주제에 대해서 전세계의 컴피티션 참여자들이 자신이 분석 중 얻은 결과를 공유하고 따로 알게된 재미있는 사실도 함께 공유하는 하나의 놀이터다. 재미는 덤이고, 그들이 짜둔 코드를 염탐하며 데이터를 좀 더 잘 정제하고 다룰 수 있는 힌트도 얻어갈 수 있게 된다.


 막연하게 고수들만 접근할 수 있을거라 오해했던 Kaggle, 두려움을 떨치는 데에 성공했다는 데에 의의를 두어본다.




다음글. 

데이터 분석 진입하기





이전 08화 데이터 공부를 지속적으로 하는 방법
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari