뒤늦게쓰는 빅콘테스트 2019 퓨처스리그 참가 리뷰
2021, Apr 14
빅콘테스트 2019 - 퓨처스리그 참가 기록
대회참여 이후의 기억과 기록 일부를 참고하여 뒤늦게 블로그에 올려보고자 합니다.
팀
- NA랑 NULL자
- 리더 : 김
- 팀원 : 박
- 팀원 : 박동석(본인)
본인의 역할
- 데이터 조사 일부 및 EDA
- Python Scikit-learn 라이브러리 활용 항공지연 예측 모델 만들기
- 보고서 작성
- 격려
대회 주제
항공 운항 데이터를 활용한 항공편별 지연 여부 예측
2019년 9월의 항공편 지연 예측하기
대회 결과
- 1차 서류심사 : 합격
- 2차 발표심사 : 수상 X
활용
- R
- Python
프로젝트 일시
- 2019.08 ~ 2019.09.07 - 데이터 조사 및 변수 탐색, 전처리 , 분석방향 설정, 탐색적 자료분석
- 2019.09.09 ~2019.09.10 - 예측모델 만들기, 보고서 작성
- 2019.09.10 - 보고서 제출
- 2019.11.12 - 발표
프로젝트 내용 초간단 요약
- 주어진 2017~2019 상반기 실제 국내 항공 운항 관련 데이터셋에서 필요하다고 생각되는 변수들을 포함시키고 추가하여 학습시킨다.
- 데이터셋 특성상 정상/지연의 케이스 개수 차이가 심한 것을 고려해 오버샘플링으로 소수데이터(지연) 수를 늘린다.
이 때 사용한 변수들이 많았다고 판단하기도 했고 해서 SMOTE 기법을 사용함. - 기계학습 모델의 성능평가 지표인 (f1-score)(재현도와 정밀도)를 기준으로 하여 모델을 선정한다.
그게 뭐더라
SMOTE
- Synthetic Minority Oversampling Technique
- 기존자료를 단순하게 복제하는 것이 아니라 기존자료들을 합성하여 새로운 케이스를 생성하는 기법이다.
f1-score
- 재현도와 정밀도의 조화평균이다.
- 불균형 데이터이기 때문에 정확도 보다는 f1-score 를 고려하게 되었었다.
정밀도(Precision)
- 정밀도란 모델이 True라고 분류한 것 중에서 실제 True인 것의 비율이다.
- 만약 어떤 게임에서 어뷰져를 분류하고 어뷰져일 경우 영구정지를 때린다고 하자. 어뷰져라고 분류했는데 어뷰져가 아니였다면? 즉 정밀도가 낮으면 치명적인 손실일 것이다.
재현도(Recall)
- 재현도란 실제 값이 True 인데 모델이 True라고 분류한 비율이다.
- 차라리 어뷰져인데 어뷰져로 분류를 못하는 편이 나을 것이다.
후기
-
사실 서류 제출 직전 예측 모델을 만들지도 못하고 팀원들이 포기했었다. 끝까지 포기하지 않고 밤을 새 반나절만에 모델과 보고서를 만들어 제출하였었다.
-
결과가 상당히 미숙하다고 생각했음에도 제출한 보고서가 통과되어 한국항공공사에서 발표할 기회를 얻을 수 있었다. 팀원들을 독려하여 팀이 모두 발표 심사에 참가하고 팀원이 발표를 할 수 있었다.
- 부족한 내용에도 발표를 해 준 팀원에게 감사함을 느끼고 있고, 팀과 팀 플레이의 중요성을 느낄 수 있었던 좋은 경험을 만들어준 대회였다.
-
예측결과가 어땠는지와 상관없이 결과에 ‘이것으로 무엇을 얻을 수 있고 무엇을 해결할 수 있고 무엇을 할 수 있나’ 라는 것이 없었다. 결국 분석의 목적이고 근본이라는 점을 망각했었다.
-
모델은 만들어 나가는 과정은 다른 팀들과 비슷한 점이 있었다는 점은 긍정적이었으나 다른 실력있는 팀들의 디테일 , 시각화 , 인사이트적인 측면 고려 등에 대해 많은 것들을 보고 배울 수 있었다는 점이 더 긍정적이었다.
기록
https://github.com/pds0309/bc2019
참고
파이썬 라이브러리를 활용한 머신러닝 - (안드레아스 뮐러, 세라가이도)