
github: https://github.com/Team-FDI/Team_FDI-DataCreator
기간: 2019년 9월 21일 ~ 2019년 10월 12일
요약: 2019 데이터 크리에이터 캠프 우수상 수상
youtube: https://www.youtube.com/watch?v=cLGrCpvQjx4
나의 첫 데이터 분석 공모전,,,
예선전부터 보고 싶다면?
2020/08/05 - [Sunny's Project] - 2019 데이터 크리에이터 캠프 #1 예선전
2020/08/05 - [Sunny's Project] - 2019 데이터 크리에이터 캠프 #1 예선전
2020/08/05 - [Sunny's Project] - 2019 데이터 크리에이터 캠프 #1 예선전
2020/08/05 - [Sunny's Project] - 2019 데이터 크리에이터 캠프 #1 예선전
1. 설레는 결승전 준비
결승전의 장소는 판교 K-ICT 빅데이터 센터에서 진행되었다. 이전에 아버지 사업을 거기서 하셔서 가본 적은 있었는데 그래서 더 기대가 컸다. 시설이 되게 되게 좋았다는 거,,,
결승전은 주제가 미리 주어졌다.

정리하자면,
1. 금융 거래 이진분류
2. 와인 쇼핑몰 리뷰 회귀분석
3. 축구 선수 평가 다중 분류
크게 세 가지로 나뉘었고 팀 별로 선택해서 하나의 문제를 분석하는 것이다.
우리 팀은 모여서 회의를 했는데 그렇게 큰 고민 없이 3번을 골랐다. 그 이유는 왠지 사람들이 많이 안 고를 주제일 거라는 게 컸고, 다음으로는 우리 팀 언니가 축구에 관심이 많아서였다.
그렇게 우리는 결승전 당일 전에 예선전의 경험을 통해 몇 가지 준비해 갔다.
이번에는 주제가 정해져서 어떤 데이터를 분석할지 예측할 수 있었고, 모델 선택에 더 많은 생각을 했다.
- 전처리 기법
- 분류 모델(Random forest, XGBoost, DNN)
- 발표자료 준비
역할 분담은
sunny, wisdomin: 전처리 코드, PPT
svivs: xgboost classifier, xgboost accuracy 코드
언니, 오빠: dnn, 자료조사
이렇게 진행되었다.
전처리 준비에서 가장 고민하고 힘쓴 부분은 '결측치 처리'였다.
우리가 결측치 처리를 알아보았을 때 확인할 수 있었던 조언은 결측 데이터의 종류에 알맞은 결측 처리 기법을 사용하라는 것이었다. 우선 현재는 결측 데이터가 어떻게 생겼을지 몰라서 그저 공부하는 수밖에 없었다.
결측 기법은 크게 세 개인데,
1. 합리적 접근
2. 완전 제거
3. 다중 대체법
이다. 이 중에서 가장 도움될 것 같았던 것이 다중 대체법이다. 합리적 접근과 완전 제거법의 경우는 아주 특별한 상황이 아닌 이상 정확도를 높일 방법처럼 보이지 않았다.
다중 대체법에도 다양한 방법이 있는데, 우리는 그중에 가장 많이 사용한다고 하는 Mice 기법을 준비했다. 왜냐하면 완전 무작위 결측(MCAR)의 경우 numeric, categoric 한 변수가 섞여 있어도 잘 작동한다고 확인했기 때문이다.
그렇게 우리는 조금씩 대회에 준비를 해나갔고 대망의 결승전이 다가왔다.
2. 결승전 당일!
이번에도 떨리는 것보다는 놀러 간다는 기분으로 판교로 향했다.


역시 시설이 굉장히 좋았고, 다과가,,, 아주 많이 준비되어 있었다.(빈츠 엄청 먹음)
조금 시간이 지나서 기억이 많이 안 나지만 당일의 기억을 더듬어 보겠다.
아 참고로,
대회 관련하여 후기 영상을 유튜브에 게시했어요!
대회가 끝나고 얼마 안 지났을 때 만든 영상이니
영상을 짧게 보셔도 좋을 거 같습니당
https://www.youtube.com/watch?v=cLGrCpvQjx4
우리가 선택한 축구 데이터 주제의 데이터를 받았다.
음 그런데,,,
상상 그 이상,,,
데이터의 양이 많은 건 당연한 거고
데이터의 반 이상이 문자열이었다. 심지어 중간중간 정제해야 하는 데이터들도 있었다.
사실 전처리의 기법과 준비를 많이 해서 간 상태라서 얼른 끝날 줄 알았는데, 전처리에서 시간이 엄청 걸렸다.
문자열을 숫자로 변경하고, 기록하고.
날짜 데이터도 형식 통일하고, 빈 값에는 알맞은 값으로 채우고, 준비한 mice기법을 사용하다가 에러 나고
데이터가 워낙 많으니 무슨 문제인지 몰라서 허둥지둥,,,
그렇게 주어진 시간의 절반을 전처리에 소요하게 되었다.
miceresult = mice(prepro, seed = 1234, m = 5)
miceOutput = complete(miceresult)
(R로 작성한 해당 mice 코드)
이때 크게 실수한 것
전처리에 시간도 부족하고, 다급해져서 데이터에 대해 내가 생각하지 않고 이건,,, 필요 없겠지? 라는 마음으로 임의로 빼고 분석하지 않은 컬럼들이 있었다. 하지만 데이터 분석이란 하나, 하나의 데이터들이 모두 소중하고 제외하더라도 그에 따른 합당한 이유가 있어야 한다는 것이었다.
그렇게 전처리가 끝나고, 준비한 모델로 돌리기 시작했다.
하지만 문제는 끊임없이 나타났다.
준비한 DNN 모델은 계속 100%가 나오고,
믿고 있던 Random Forest의 결과가


다 좋은데, 그래프에서 변수 확인이 불가했던 것. 물론 수치에 따라 sort 해서 변수명을 찾으면 되지만 시간도 촉박했고 아주 복잡했기 때문에 멘붕 상태였다.
그리고...
XGBoost가 돌지 않았다.
아마 데이터가 너무 크고, XGBoost가 너무 무거워서가 아니었을까 생각한다.
그나마 DNN과 RandomForest의 결과를 낼 수 있어서 발표를 할 수 있었다. (멘토님들 덕분,,,)
사실 이 날의 발표는 성과를 보여주는 발표라기보다는 "우리가 이것도 하고 이것도 했는데 이것도 힘들고 이것도 힘들었어요ㅜㅜ"라고 하는 발표였던 것 같다.
다행인 건 비교당할 다른 팀이 없었어서 크게 부각된 단점이 없었다.
이 날 다른 팀들의 발표를 듣는데, 다들 아주 분석에 관한 지식이 많았다. (고등학생 팀도 아주 굉장했던...)
자극도 많이 받았고, 상을 받기에는 어려울 거라는 생각을 했다.
3. 하지만.


우수상을 받을 수 있었다,,,!!!! 정말 상상도 못 했는데 값진 결과를 얻었다.
아마 열심히 하는 열정이 정해지지 않았나 싶다. (크크크 오글거리지만 정말이다)
상으로 AI 스피커 카카오 미니를 받았다.

4. 공모전을 마치며...
역시 공모전은 재밌다.
그것도 결과물이 나오면 훨씬 더.
내가 배운 것을 파트로 나누어서 표현해보겠다.
1. 지식적인 면
- 전처리 기법(mice)
- 데이터 분석 프로세스
- 데이터를 분석하고 정제할 때, 그에 따른 합당한 이유가 있어야 한다는 것
2. 팀워크
- 역할 분담을 하면 우리 팀의 결과물에서 내가 모르는 부분이 있다.
- 의사소통을 할 때, 내용을 확실히 말해야 한다.
- 확실히 전달하지 못할 시 오해가 생기기 쉽고 나도 무엇을 말하고 싶은지 확실히 해야 할 필요 있음
이것보다 훨씬 많았던 것 같은데... 역시 경험한 것 그때 그 때 빠르게 작성해야 하는 것 같다 ㅠㅠ
그렇게 우리 Team_FDI의 두 번째 공모전은 우수상을 거두었다.
지금은 언니는 취직하고 오빠는 군대에 가셔서 또 공모전을 함께 할 수 있을지 미지수지만,
wisdomin, svivs의 다음 프로젝트.
곧 다음 포스팅을 올리겠습니당,,,~
'Sunny's Project' 카테고리의 다른 글
2019 데이터 크리에이터 캠프 #1 예선전 (2) | 2020.08.05 |
---|---|
오늘의 코로나(Today's COVID-19) (0) | 2020.07.28 |
먼지쳐방전 (공모전 가서 휴양하고 온 SSUL) (0) | 2020.07.21 |
MY융소 (0) | 2020.07.17 |