My First Kaggle

요새 좀 새로운게 필요해졌습니다.

요새 조금 회사에서도 똑같은 일만 계속 하다 보니 (물론 주제는 다르지만 항상 Java와 웹 서비스 로직을 구현하고 있습니다.) 조금 일에 대하여도 매너리즘에 빠지게 되었습니다.

회사 평가도 시원찮게 나왔고, 그에 따른 연말 보상에 대한 부분도 기대하기 어려워졌습니다. 그리고 실제로 개인적으로는 매우 실망적인 결과를 받게 되었죠. (…)

1년을 매우 열심히 달렸지만, 저의 노오력과 무관한 결과를 받고 보니 정말 다 싫어버리게 되었습니다.

가정적인 이유도 있기도 하고, 여러모로 참 연초가 뒤숭숭하긴 합니다. 그래서 새로운 바람을 제 안에 조금 불어넣을 이유가 생겼습니다.

그래서 처음으로 캐글에 도전해 보았습니다.

무엇을 해볼까 하다가 이전에 대학교 3학년 시절에 R로 지능형 프로그래밍 (이라 쓰고 머신러닝 노가다라고 부른다)을 배우던 시절 (모델을 돌려놓고 결과를 두근 두근 하며 기다리던 시절)이 생각 나서요. 캐글을 도전해봤습니다.

사실 가입은 2년전에 했었는데, 만들기만 해놓고 이런 저런 이유로 접속도 하지 않고 있었습니다.

1 부끄러운 저의 프로필 (저 사진은 대체..)

새롭게 해야할 사항들을 업적과 같이 만들어 놓아서 하나하나 클리어 하는 마음으로 프로필을 완성하고, 역시나 모두가 제일 처음 해본다는 타이타닉 예제를 도전해보기로 하였습니다.

역시 모두가 공유 정신을 가지고 있어서 적절한 예제 포스팅을 따라해보기로 합니다.

감사합니다! 캐글코리아!

첫 Submission

2

따라만 했을 뿐인데 데이터를 가공해서 모델 만들고 Submission까지 했습니다.

처음 Competition을 하려고 보면 뭐가 뭔지 하나도 몰라서 그냥 굳고 창을 닫기 마련인데, 캐글쪽에서도 어떻게 캐글을 즐겨야 하는지 알려주기도 하고, 캐글 코리아에서도 하나하나 알려주시니, 넘나 감사했습니다.

적당히 코드를 열심히 옮기고 나면서 눈으로 훑으며 내려오니 Competition의 Sequence를 알게 된거 같았습니다.

적당히 아래처럼 흘러가는 구조이더라구요.

  1. 데이터를 불러온다.

    당연히 데이터를 불러와야겠죠? 보통 데이터의 성격은 Description에 써있긴 합니다만 한번 쭉 head 메소드를 사용해서 살펴보는 편입니다.

  2. 데이터에 빠진것 (null)이 있는지 파악한다.

    보통 있습니다. 실제 업무에서는 당연한 상황이겠죠. 오히려 캐글이 조금 더 나은 상황이라고 하더라구요. 이정도면 꽤나 정제된 데이터다 라는 평을 어디선가 들은적이 있습니다.

  3. 결측값을 어떻게 채워 넣을지 고민한다.

    데이터의 속성을 이리저리 살펴보면서 결측 값을 어떻게 채울지를 고민하고 채워넣습니다. 보통 다른 Column의 특성들을 고려하여 평균값을 넣는 방식을 사용하는 것 같았습니다.

  4. 데이터를 살펴보고 training set과 연관도가 높은 순서로 살펴본다.

    competition에서는 어떤 문제를 풀어야 할 줄 알고, 일반적인 통념 (타이타닉 예제에서는 영화에서 본적 있듯이 여성이, 높은 등수의 칸의 승객이 생존 확률이 더 높았죠)에 기대어서 가설을 살짝살짝 확인해봅니다.

  5. 모델을 만들고 training set에 prediction을 해봅니다.
  6. test set에 똑같이 해서 결과를 확인해봅니다.
  7. 점수 혹은 예측률이 너무 낮다면, 데이터를 보정하거나 다른 모델, 파라미터를 조정해봅니다.

    여기가 어떻게 보면 앞에 데이터를 정제하는 과정과 더불어 가장 힘든 부분이라고 할 수 있겠더라구요. 데이터를 결측값을 어떻게 매꾸어 놨는데, 다른 방식으로 매꾸어야하나? 하는 의심을 갖고 여러번 시도해야 하는 것이죠.

    게다가 모델도 바꾸어 가면서 예측에 들어가는 파라미터도 바꾸어야하니 variation이 너무 많아요. 가짓수가 많다는 거죠 이걸 다 한번씩 돌려보면서 score도 확인해야하니 한번의 competition에 엄청나게 많은 노오력이 들어갑니다.

역시나 쉬운건 아무것도 없다.

아직 완전하게 이해한 건 아니지만, 전혀 다른 필드의 코딩(?)을 경험해보니 꽤나 신선한 경험이었습니다. Kaggle에서 제공하는 노트북 서비스는 정말 환상적이었죠. 게다가 무료니..ㅎ (submission은 언젠가 부터 하루 몇회 무료로 바뀌었다고 하더라구요.. 아무래도 한번 submission마다 의무적으로 돌려봐줘야하니..)

조금 더 준비해서 새로운 Competition을 참여해 보는것도 재미있는 경험일 것 같습니다!

태그: ,

업데이트:

댓글남기기