AI·빅데이터 융합 경영학 Study Note

경진대회란 무엇일까 본문

Data Science

경진대회란 무엇일까

SubjectOwner 2024. 3. 3. 23:35

(출처: 가도와키 다이스케 외 3인, 『데이터가 뛰어노는 AI 놀이터, 캐글』, 대니얼WJ 옮김, 한빛미디어, 2021, 27~64쪽.)

(도입부에 해당되는, 경진대회 자체와 캐글을 예시로 들어 경진대회의 시스템에 대해 설명한 글입니다. 분석 자체에 대한 내용은 없습니다.)

 

 

경진대회란?

 

경진 대회에서는 주최자가 제공한 데이터로 행 데이터별 레이블이나 값을 예측하는 분석 기법을 경쟁합니다. 이때 예측하려는 레이블이나 값을 목적변수라고 합니다. 각 행 데이터는 목적변수 예측에 필요한 다양한 겂을 포함하는데 이 값들을 특징(feature)이라고 합니다.

경진 대회 주최자는 예측 모델을 만드는 데 필요한 학습 데이터와 실제 예측 대상인 테스트 데이터를 제공힙니다. 학습 데이터에는 특징과 목적변수가 포함됩낟. 테스트 데이터에는 특징만 포함되며 목적변수는 알 수 없습니다.

대회 참가자는 학습 데이터를 모델에 학습시키고, 그렇게 학습한 모델로 테스트 데이터를 이용하여 예측합니다. 테스트 데이터의 예측 결과가 실젯값과 얼마나 근접했는지에 따라 순위가 결정됩니다. 이때 예측 결과와 실젯값의 근접 정도를 측정하는 평가지표는 대회마다 다릅니다. 대회에 출제되는 task도 다양하며, 예측 대상이나 주어지는 데이터도 task에 따라 달라집니다. 이를 하나씩 마스터하는 것이 데이터 분석 전문가가 되는 길이겠지요.

참가자는 대회 기간 도중에 테스트 데이터의 예측 결과를 제출할 수 있습니다. 그러며 예측 결과의 점수와 잠정 순위가 Leaderboard 페이지에 표시됩니다. 이때 표시되는 점수는 테스트 데이터의 일부를 이용한 결과로, 최종 순위를 결정하는 점수는 아니지만 대략적인 순위를 파악하는기준으로 활용할 수 있습니다. 최종 순위는 Private Leaderboard의 평가 기준이 되는 남은 테스트 데이터에 따라 결정됩니다.

대회를 이렇게 구성하는 이유는 무엇일까요? 모델의 목적은 미지의 데이터를 정확하게 예측하 는 것이므로, 대회 기간 중 표시되는 점수에 지나치게 맞춰진 모델이 그대로 최종 승리로 이어 지지 않도록 하려는 것입니다. 또한 제출된 점수가 과도하게 활용되는 일이 없도록 예측값을 제출하는 횟수를 하루 수차례로 제한합니다.

경진 대회가 끝날 때까지 최종 제출할 예측 결과를 선택합니다. 최종 순위는 선택한 예측 결과에 따라 결정됩니다. 경진 대회가 끝나면 Public Leaderboard 페이지에서 평가에 활용되지 않은 나머지 테스트 데이터에 기반을 둔 점수가 최종 순위표로서 Private Leaderboard 페이지에 공개됩니다. 간혹 경진 대회에 따라서는 Public Leaderboard 페이지와 Private Leaderboard 페이지의 순위가 크게 뒤바뀌는 셰이크업(shake up) 현상이 발생합니다. 참가자는 셰이크 업 현상으로 순위가 떨어지지 않도록 Private Leaderboard 페이지의 테스트 데이터를 최적으로 예측하는 모델을 만들어야 합니다.

 

 

경진 대회 플랫폼

 

잘 알려진 경진 대회 플랫폼으로는 캐글(Kaggle, 글로벌), 데이콘(Dacon, 국내), 시그네이트(Sognate, 일본), 탑코더(Top Coder, 프로그래밍 콘테스트 플랫폼이지만 경진 대회도 개최)가 있습니다. 이러한 플랫폼은 다음과 같은 기능과 환경을 제공합니다.

  • 데이터셋 공유 기능
  • 예측 결과 제출 시 자동 채점 기능
  • Leaderboard 제공
  • 스크립트 실행 환경(캐글 노트북인 Code 등. 주피터와 유사함)
  • 각종 게시판 제공

 

 

경진 대회의 흐름

 

경진 대회의 참가부터 종료까지의 흐름은 다음과 같습니다. 캐글을 예로들어 설명하겠습니다.

 

[Join Competition]을 선택하여 경진 대회에 참기 > 약관 동의 > 데이터 다운로드 > 예측 결과 작성 > 예측 결과 제출 > Public Leaderboard 확인 > 최종 예측 결과 선택 > 대회 종료 후 Private Leaderboard에서 최종 순위를 확인