티스토리 뷰

개발/길 잃은 게시물

캐글 뽀개기

Jaeyeon Baek 2017.12.03 15:55


캐글(Kaggle)은 2010년 설립된 예측모델 및 분석 대회 플랫폼이다. 기업 및 단체에서 데이터와 해결과제를 등록하면, 데이터 과학자들이 이를 해결하는 모델을 개발하고 경쟁한다. 2017년 3월 구글에 인수되었다. (위키백과)


데이터 분석/엔지니어가 각광받고 머신러닝/딥러닝 기술이 발전함에 따라서 매우 빠른 속도로 성장하고 있는게 바로 캐글 플랫폼이다. 플랫폼 안에는 다양한 데이터가 존재하고 다른 사용자/팀의 코드(커널)와 설명을 확인할 수 있기 때문에 많은 것을 배울 수 있다. 말하자면 개발자가 코드로 이야기 하기 위해서 GitHub 을 사용 하듯이 데이터를 다루는 사람은 캐글로 이야기 한다. 그렇다면 이러한 캐글 플랫폼에는 어떤 것들이 있고 어떻게 사용할 수 있는지 천천히 살펴보도록 하자.


https://www.kaggle.com 주소로 접속해보면 심플한 화면이 사용자를 맞이한다. GitHub 과 유사한 디자인으로 거부감이 없다. 플랫폼을 살펴보는데 로그인이 굳이 필요하지는 않지만 우선 Sign In 을 살펴보자.


대부분의 사이트처럼 소셜 로그인을 지원하고 있기 때문에 빠르게 접근할 수 있다.


로그인을 하고 메뉴를 천천히 살펴보도록 하자. 우선 대회 플랫폼이라고 했으니 Competitions 를 먼저 클릭해보자.


Competitions 에는 현재 등록되어 있는 다양한 대회와 데이터가 존재한다. 상금이 걸려있는 대회도 눈에 띄는데 액수를 보면 이 플랫폼의 규모와 어느정도로 인정 받고 있는지 가늠할 수 있겠다. 현재 대회중 최대 상금은 $1,500,000 이니 현재 환률($1 = ₩1,087)로 따졌을 때 한화 16억 이상이 걸려있다는 것을 알 수 있다. (헉)


각각의 대회 리스트를 유심히 보면 Featured, Research, Playground, Getting Started 로 구성되어 있다. Getting Started 쪽에는 이쪽 분야에서 상당히 유명한 타이타닉 생존자 예측, MNIST, 집 값 예측을 위한 데이터가 포함되어 있다. 


이제 구체적인 대회 내용을 살펴보면서 어떤식으로 운영이 되는지 알아보도록 하자. 여기서는 "TensorFlow Speech Recognition Challenge" 를 선택했다 (이번에 참여하고 있는 대회이기도 하고). 


- Overview 를 통해 대회의 대략적인 소개를 볼 수 있고, 

- Data 카테고리에서는 대회에서 사용되는 데이터를 설명하고 다운로드 받을 수 있다. 

- Kernels 은 이 대회에 참여하고 있는 사람들이 등록하는 데이터를 다루는 기법 및 기술을 소개하는 공간이다. 주로 jupyter notebook 포맷을 이용하고 있다.

Discussion 은 기본적인 토론을 하는 곳인지 Q&A 공간으로 생각할 수도 있겠다.

- Leaderboard 에서는 현재 대회에 참여하고 있는 사람들의 등수를 확인할 수 있다.

- Rules 은 대회 규칙을 설명하고 있다.

- Team 은 팀을 구성해서 대회에 참여할 수 있도록 도와주는 카테고리이다. 기본적으로 한명이 하루에 submit 할 수 있는 횟수가 5회로 제한되는데, 팀도 5회로 제한된다. 팀원이 3명이라고 해서 15번할 수 있는게 아니라 3명으로 구성된 팀도 결국 하루에 5회 밖에 submit 할 수 없기 때문에 팀은 최대한 늦게 구성하는 것이 좋다고 한다.


스크롤을 아래로 내려보면 대회 일정 진행상황을 한번에 살펴볼 수 있다. 현재 대회가 시작 된지 17일이 지났고, 636개의 팀과 678명의 참석자가 있다는 사실을 알 수 있다.


이제 Data 를 들여다보자. 결과물 submit 을 위한 양식을 sample_submission.7z 으로 제공하고 학습을 위한 train.7z 을 제공한다. 그리고 최종적으로 결과 예측을 위한 test.7z 이 존재한다는 것을 알 수 있다. 아래 데이터에 대한 설명이 모두 기재되어 있으니 확인해보자. 이 데이터의 형식이나 개수는 대회 별로 상이하다.


다음으로는 Kernels 를 보자. 여러 사람들이 다양한 노트북을 공유하고 있다. 대회 데이터를 다루는 법에 대한 꿀팁이 공유 되기도 하기 때문에 눈여겨볼 필요가 있다. upvote 가 많은 게시물은 특히 더 관심있게 보자.


가장 중요한 Leaderboard 페이지에서는 전체 등수를 확인할 수 있다. 또한 나의 마지막 submission 에 대한 이력을 확인할 수 있는데 아래는 sample_submition.7z 을 그대로 올려본 결과물이다. Score 0.09. 이렇게 Submit 을 경험해보자. (최초 submit 을 위해서는 본인인증이 필요한데 SMS로 전송되는 인증번호를 텍스트박스에 입력하는 형식이다. SMS 수신번호를 입력할 때 때 국가번호를 포함시켜야 한다는 사실을 기억하자. 예를 들어 대한민국이라면 82 가 되겠다.)


끝으로 Submit Predictions 카테고리를 살펴보자. 이 페이지에서는 최종 점수와 함께 새로운 submit 을 할 수 있다.


Submit 은 어렵지 않다. 우선 업로드할 CSV 포맷의 파일을 화면에 drag & drop 하고,


submit 에 대한 간단한 메시지를 입력 후 "Make Submission" 버튼을 눌러주면 끝이다. 부담없이 눌러보도록 하자. 


업로드 하는 CSV 파일의 형태가 대회와 일치하지 않는 경우에는 하루 5번 가능한 submit 횟수에 포함되지 않는다. 이런 규칙에 대한 이야기는 Rules 에 있으니 참고하도록 하자.


스크롤울 내려보면 하루 5번 submit 할 수 있다는 정보와 함께 최종적으로는 나의 submit 중 두 개를 선택해서 제출해야 한다는 내용이 있다.


그리고 상금에 대한 정보가 명시 되어 있다. 


마무리

이제 데이터 분석은 IT에 종사하고 있는 사람이라면 누구나 멀리할 수 없는 시대가 되었다. 빅데이터라는 말처럼 세상에는 많은 데이터가 쏟아지고 있는데 정작 공부하는 입장에서는 그저 먼 나라 이야기이다. 그 데이터를 실제로 볼 수가 없으니까 말이다. 하지만 캐글 플랫폼을 통하면 다양한 데이터를 다룰 기회가 생긴다. 캐글을 통하면 빅데이터를 다뤄보고 다양한 사람들과 소통하며 대회 참여의 기회까지 제공되니 엄청난 혜택을 받는 느낌이다. 늦지 않았다. 캐글은 앞으로도 계속 더 크게 성장할 것이기 때문에 우리도 재빠르게 발을 들여야 하겠다.



댓글
  • 프로필사진 컴맹 안녕하세요. 최근 kaggle을 시작한 컴맹입니다:) 전 끝난 대회인 two sigma finance modeling ch~ 여기에 참가를 해보고 싶은데 데이터 업로드(대회 참여 목적이 아닌 연구목적)가 보이질 않네요ㅠㅠ 제가 몰라서 안보이는 것인지...끝나서 안되는 것인지ㅠㅠ... [Unhandled exception ([Errno 2] No such file or directory: '/mnt/dataset_cache/comps/.5874.pid_1082.loan_0b8bcbdb-c830-424f-9b2c-0d22d1f1946b.downloading' -> '/mnt/dataset_cache/comps/5874.pid_1082.loan_0b8bcbdb-c830-424f-9b2c-0d22d1f1946b')] 노트북에서 데이터를 넣고 실행을 하려고 해도 이렇게 에러가 뜨네요 혹시 괜찮으시다면 한 번 시도해주실 수 있으신가요? 미리 감사드립니다.!! 2018.01.03 23:22 신고
  • 프로필사진 BlogIcon Jaeyeon Baek 아마도 닫힌 것 같습니다. 대회가 종료되고 submit 이 막히는건 저도 처음보네요. :-( 도움이 못드려 죄송합니다. 2018.01.04 14:53 신고
  • 프로필사진 컴맹 정말 감사합니다.ㅠㅠ 새해 복 많이 받으세요 2018.01.04 15:56 신고
  • 프로필사진 BlogIcon Jaeyeon Baek 혹시 다른 이유를 알게되면 댓글로 남겨놓겠습니다. 복 많이 받으세요~ 2018.01.04 15:58 신고
  • 프로필사진 컴맹 제가 진짜 컴맹이긴 한가봅니당ㅠㅠ비밀 댓글을 어떻게 보는지를 못 찾겠네요ㅠㅠ 수고스러우시겠지만 공개로 전환시켜 주실 수 있으실까요? 2018.01.04 15:48 신고
댓글쓰기 폼