캐글 대회 회고: Improve a Fixed Model the Data-Centric Way! (with GMB)

구글 머신러닝 부트캠프 졸업 후기를 쓰다가 문득 블로그로 쓸만한 규모 있는 경험들을 먼저 써놓고 후기에선 정리하는 방식이 좋을 것 같다는 생각이 들었다. 그리하여 쓴 이 글은 2023.09.05 ~ 2023.09.12 동안 참여한 대회에 대한 회고이다.

 

※ 해당 대회에 대해 정리한 깃허브

kaggle-competitions/Kaggle_PS3E21 at main · gyeom-yee/kaggle-competitions (github.com)

 


 

■ 개인 목표 및 동기

구글 머신러닝 부트캠프에서 처음으로 참여했던 캐글 대회로, ㅅㅈㅇ님이 올려주신 모집글을 보고 다시 한번 캐글 입문 계기를 마련하기 위한 좋은 기회라고 생각하여 참여했다.

(팀 합류 후 나머지 한 분은 현직자, 또 한 분은 퇴사 후 취준 중이셨다.)

 


 

■ 대회 소개

Improve a Fixed Model the Data-Centric Way! | Kaggle

 

Improve a Fixed Model the Data-Centric Way! | Kaggle

 

www.kaggle.com

이 대회는 특이하게도 예측값 제출 대신 고정된 방식으로 RandomforestRegressor 모델을 훈련하는 데 사용할 데이터셋을 가공하여 제출하는 것이 과제였다. 그 후 이 모델을 사용하여 숨겨진 test set에 대한 예측을 수행하여 RMSE로 점수를 매기는 방식이었다.

- Dataset Description: 하천수데이터셋의 용존산소 예측을 기반으로 한 가공 데이터셋

Dissolved oxygen prediction in river water (kaggle.com) (원본 데이터셋)

 


 

■ 제출 파일 형식

- random forest model을 훈련하는 데 사용될 dataset을 제출  

- 제출할 submission에는 sample_submission.csv의 데이터 탭에 있는 모든 열이 포함  

- NaN 값이 포함 X (NaN 값이 포함되어 있으면 오류 발생)  

- 제출 시, sample_submission.csv보다 행 수가 적을 수 있지만 행 수는 많지 않을 것임

 


 

■ 결과 및 평가

7일의 전사라는 이름 아래 3명이 모여 고군분투했지만 나는 아직 베이스라인에 대한 정의가 없었기에 프리라이딩 하며 붕 뜬 것이나 마찬가지였다. 나머지 두 분은 엄청 열정적으로 이것저것 시도해보셨지만 나는 공유 노트북을 분석하는 데만 한참 걸렸고 제대로 된 나만의 것을 제출하지 못해서 아쉬움이 컸다. (이때 당시 생애 처음으로 인턴 지원을 하느라 집중하지 못한 원인도 있다. 추후 다른 글에서 남기겠다.)

 

대회의 결과는 엄청난 shakeup과 함께,상위가 아닌 하위를 바라보게 만드는 등수로 떨어졌으며 아이러니한 게 내가 제출한 노트북의 성능이 가장 좋게 나오는 기이한 현상이 일어났다. 하지만 내 노트북은 Public LB에서 나머지 두 분의 성능에 비해 한참 떨어졌기에 최종 제출되진 않았었다.

아래 사진을 참고, 왼쪽이 Private LB 점수이고 오른쪽이 Public LB 점수 (RMSE 점수이기에 낮을수록 성능이 좋음)

맨 마지막 요게 내가 제출한 것
처참한 최종 등수

 

나머지 두 분이 제출한 것은 엄청난 오버피팅을 일으켜 싸늘한 숫자만 남게 되었는데 내가 제출한 노트북은 단지 Feature selection에 집중하여 총 6가지 방법으로 Feature를 뽑아낸 단순한 노트북이라 어리둥절..

 

이 일로 중요한 교훈을 얻었다. 오버피팅 관리가 매우 중요하다는 것과 이 때문에 다양하고 복잡한 기법이 능사는 아님을.

 


 

■ 대회 종료 후

Private 4등 노트북 자료를 참고하여 비공식 3등 점수까지 점수를 끌어올렸다.

단순히 이상치만 6개 제거했을 뿐인 단순한 노트북인데 엄청난 성능을 보인게 앞서 말했던 교훈을 다시한번 상기할 수 있는 증거였다. 4th place solution | Kaggle

 

요것을 차용하여 기존의 Feature Selection 집중 방식과 이상치 제거를 병행했고 그 결과 매우 유의미한 결과를 도출할 수 있었다. 

Late Submission으로 달성한 비공식 3등 점수
Private LB 랭킹

 


 

■ 후기 및 소감

결과론적으론 내가 가장 좋은 성능을 냈지만 과정을 보면 협업다운 협업이 아닌 얼레벌레 따라가게 된 경험이었다. 팀 모두에게 사정(인턴 지원) 을 설명하니 이해해 주셨지만 추후 또 다른 Playground 대회 제안을 했을 때 회신이 없는 것을 보고 역시 실망하셨구나 싶은 마음이 들어 크게 반성하게 됐다.

앞으로 주어진 환경에서 시간 배분을 잘할 수 있도록 책임감을 심어준 확실한 계기가 됐다. 

 

이 대회는 구글 머신러닝 부트캠프에서 코세라 수강 이후 처음으로 참여한 대회로, 많은 아쉬움이 남지만 그만큼 중요하게 얻은 것과 반성을 할 수 있었던 대회였기에 후회스럽지는 않다. 오히려 이후 더 좋은 인사이트와 결과를 위한 욕심을 가져다준 성공의 어머니가 됐지 않나 싶다.