캐글에 주구장창 참여하다가 기록의 필요성을 느꼈다.
지금은 playground 기준 TOP 10% 대에 머물고 있지만
더 나은 내가 되었으면 하는 바람에서 회고를 남기고자 결심했다.
이 글은 2023-06-24 ~ 2023-08-26 이 기간 동안 풀잎스쿨을 하면서 캐글에 처음으로 참여했던 대회의 회고이다.
(물론 타이타닉 빼고)
※ 해당 대회에 대해 정리한 깃허브
(당시의 짧은 회고와 Top 랭커들의 솔루션을 간략히 정리해 놨다)
kaggle-competitions/Kaggle_ICR_IARC at main · gyeom-yee/kaggle-competitions (github.com)
■ 개인 목표 및 동기
2023.10.15 - [대내외 활동/스터디] - 부스트코스 코칭스터디 10기: Beyond AI Basic 2023 후기
↑윗글에서 언급했다시피 캐글에 가입했지만 소극적이던 나였다.
코칭스터디 수료 후 나오는 풀잎스쿨 쿠폰을 써먹어보자는 마음으로 개설된 풀잎스쿨을 둘러보다가
부스터들의 캐글 도전기 - 모두의 연구소 (modulabs.co.kr)
이것을 발견하였다...!
캐글에다가 협업까지 할 수 있는 기회라는 생각이 들어 냉큼 등록했다.
(논문 스터디 모임도 하고 싶긴 했는데 100% 할인쿠폰이 하나였다...)
풀잎스쿨을 잠깐 얘기해 보자면 퍼실리테이터가 있고 그를 도와주는 버디와 팀원들인 연구원(?)이 있다.
그리고 모두연에서 정원사분들이 여러 가지 도움을 주는 구조.
이 프로그램은 원래는 약 16만 원이라는 어마어마한 비용이 드는 8주 과정의 스터디로,
그만큼 경각심을 주어 스터디를 좋게 돌리려는 것 같긴 한데 나는 쿠폰을 써서 그런 느낌을 덜했다.
이름에서도 알 수 있듯 코칭스터디에서 쿠폰을 받아 참가한 부스터들이 대다수인 것 같긴 했지만
정말 쌩돈 써서 오신 분들도 꽤 있었다. 어떻게 그만한 큰돈을 쓸 결정을 했는지는 아직까진 이해가 어렵다.
아무튼 모임은 온라인으로 총 10명이 모여 5명, 5명씩 팀을 나누어 경쟁하듯 진행했다.
초반에는 다들 호기롭게 임하면서 우선 다른 사람들의 코드를 리뷰해 보고 점수를 올려보자! 했는데
이 때는 몰랐다. 이것이 패착 요인이 될 줄은...
(자세한 것은 글 후반에)
■ 대회 소개
ICR - Identifying Age-Related Conditions | Kaggle
환자가 세 가지 질병 중 하나 이상을 가지고 있는지(class_1),
아니면 세 가지 질병 중 하나도 가지고 있지 않은지(class_0)를 예측하는 모델을 만드는 것이다. (이진분류)
원래 이러한 질환이 있는지 확인하려면 환자로부터 정보를 수집하는 과정이 길고 번거롭다. 하지만 예측 모델을 사용하면 조건과 관련된 주요 특성을 수집한 다음 이러한 특성을 인코딩하여 이 프로세스를 단축하고 환자 세부 정보를 비공개로 유지할 수 있다는 가정 하에 대회를 진행했다.
- Evaluation metric: Log Loss
의료 데이터에서 로그 손실은 확률적인 예측, 클래스 불균형 데이터 처리, 모델의 확률 보정, 최적화 및 모델 선택에 유용하게 사용. 이를 통해 모델의 예측 정확도를 평가하고 신뢰도 있는 의사 결정 가능.
■ 데이터셋
- train.csv
- Id : 각 환자의 고유 식별자
- AB - GL : 56개의 익명화된 건강 특성, EJ는 범주형('A', 'B')으로 구성
- Class : 세 가지 의학적 상태 중 1개 이상이 포함된 경우(클래스 1), 그렇지 않다면(클래스 0)
- test.csv
- Id : 각 환자의 고유 식별자
- AB - GL : 56개의 익명화된 건강 특성, EJ는 범주형('A', 'B')으로 구성
- test는 추론(모델 분석 결과)을 위한 데이터이기 때문에 Class가 존재하지 않음
- greeks.csv
- train.csv에 추가하여 사용할 수 있는 메타데이터 (보충 데이터)
- Alpha
- A : 연령 관련 조건이 존재하지 않음을 뜻하므로 train.csv에서 해당 식별자의 클래스는 0
- B, D, G : 세 가지 연령 관련 조건이 존재한다는 뜻이므로 train.csv에서 해당 식별자의 클래스는 1
- Beta, Gamma, Delta 세 가지 실험 특성
- Epsilon은 데이터가 수집된 날짜
■ 결과 및 평가
- 6,430 Teams
- Public Leaderboard: 1,124 th
- Leaderboard: 703 th (Top 11%) Private
결과만 보면 잘한 것 같지만 사실 그렇지 않다.
우리의 베이스라인은 작성해보지도 못하고 다른 사람들의 공유 노트북만 리뷰하면서 제출한 게 전부였고
하필 이번 대회가 shakeup이 심했던 대회라 Public 리더보드 상위권이 우수수 떨어지는 바람에 잘 정리된 공유 노트북 하나 건져서 운이 좋게 높은 순위를 가질 수 있었다.
풀잎스쿨은 4주 차쯤 되니 이탈자도 생겼고 정기적인 회의 시간에 들어오는 사람은 3~4명뿐이었다.
베이스라인의 중요성을 뒤로한 채 그저 공유 노트북의 여러 방법론의 쓰임새에만 집중했고
완벽히 이해한 자신만의 베이스라인도 없어서 방법들을 어떻게 적용할지도 몰랐다.
■ 리뷰하면서 얻은 인사이트
- 의외로 간단한 기법이 높은 점수를 받았다. (대부분 catboost 사용)
- 이때 당시엔 몰랐지만 shakeup 때문에 상대적으로 단순한 구성이 도움이 됐을 것이다.
- 높은 랭크에서 사후 보정(Calibration)은 사용하지 않았다.
■ 후기 및 소감
이 때는 베이스라인을 만든다는 게 뭐가 그리 복잡해 보이고 어려웠는지...
아마 베이스라인이란 것을 처음부터 끝까지 '나' 자신이 써야 되는 걸로 이해했던 것 같다.
그래서 한 번에 잘 쓰기 위해 다른 이들의 공유 노트북만 주구장창 봤고,
그 결과 자신만의 베이스라인도 없이 제출에 소극적이었던 것 같다.
그리고 컬럼이 암호화되어 있기에 캐린이에겐 너무 어려웠던 대회였던 것 같기도 하다.
마음껏 EDA 하고 Feature Engineering 해보고 그랬어야 했는데 데이터의 쌩 수치로만 풀어나가는 게 어려웠다.
이래저래 아쉬운 게 많은 활동과 대회였지만
베이스라인의 중요성과 shakeup을 겪으면서 오버피팅을 관리하는 게 얼마나 중요한지 몸소 깨달을 수 있던 경험이었다.
'AI 배우기 > 캐글캐글' 카테고리의 다른 글
캐글 대회 회고: Binary Prediction of Smoker Status using Bio-Signals (with GMB) (1) | 2024.01.31 |
---|---|
캐글 대회 회고: Binary Classification with a Software Defects Dataset (with GMB) (1) | 2024.01.14 |
캐글 대회 회고: Improve a Fixed Model the Data-Centric Way! (with GMB) (1) | 2024.01.06 |
[캐글] 문과 학부생이 캐글 그랜드마스터가 되기까지 (1) | 2023.10.07 |