본문 바로가기

공모전

AMP®-Parkinson's Disease Progression Prediction 공모전 (3)

공모전 제출을 하며 겪었던 시행착오들에 대해 설명하려한다.


1. 모델 선정

updrs에 대하여 모델에 따라 1,3 또는 2,4의 SMAPE 점수가 과도하게 높아지는 경향이 있었다.

따라서 2개의 모델을 사용하여 ensemble을 통해 학습을 진행하였고, 여기에서 updrs 파트 1과 3은 XGBRegressor로 학습, updrs 2와 4를 RandomForestRegressor로 학습을 진행하였다.

 

2. 런타임

모델을 한 번 돌릴 때마다 colab에서는 런타임이 강제로 종료되는 경우가 발생하였으며, kaggle notebook에서는 런타임 강제 종료 문제는 해결되었으나 시간이 오래 걸렸다. 코드를 모두 돌려보는데 1시간 가량 사용되었으며 대회에 코드를 제출할 때 걸리는 시간은 길게는 3시간까지 소요되었다.

 

3. 제출 오류

대회 참여에 있어 가장 어려웠던 부분이다. scoring과 rating이 모두 완료되어 table로 확인까지 가능했던 코드들에 대해, 무슨 이유에서인지 kaggle에 제출 시 submmission scoring error가 발생하여 점수가 측정되지 않았다. 이는 hidden test case에 대해서도 전처리를 똑같이 안해준 것이 원인인 것으로 생각되며 test data 전처리 한 내용을 전부 함수로 만들어서 예측모델 실행 전에 실행할 경우 해결되는 것으로 보였다.

 

4. SMAPE score

사실상 가장 중요한 문제로, 생각보다 점수가 쉽게 줄어들지 않았다. 우승팀의 경우 60.042점이 나왔으나, 우리팀의 경우 80점대의 결과가 도출되었다. 어떻게 하여 점수를 줄였는지는 다음 글에서 우승팀의 코드를 분석해보며 알아보고, 우리팀의 코드에 대한 피드백을 진행할 예정이다.


개인적으로 아쉬움이 많이 남는 대회이다. 모델 실행 시에 시간이 이렇게 많이 걸릴지 몰랐고 오류를 제대로 해결하는데 너무 오랜 시간이 걸렸다. 마지막 제출 전까지 오류를 잡아내다가 score를 올리는데 집중을 하지 못했던 점이 아쉬웠다.

그러나 해당 대회를 준비하면서 이론으로만 배웠던 학습 모델들과 전처리 과정들을 직접 구현해보며 많은 것을 배울 수 있었다. 특히 data EDA 과정이 생각보다 오래걸렸고, dataset의 전처리 과정에 따라 성능이 좋았던 학습 모델들이 변화하고 그 결과가 다이나믹하게 변화하는 것이 흥미로웠다.

처음 참여해보는 코드 경진대회에서 모든 것이 막막했으나 직접 부딪히고 문제를 해결해나가는 경험을 하였고, 비록 대회의 성과는 좋지 않았지만 앞으로를 준비하는데 큰 힘이 될 것 같다.

 

코드를 작성해나갔던 과정과 결과는 다음 글에서 다룰 예정이다.