성공적인 팀 프로젝트를 위한 팁!

2020.10.14 10:21 4,534 조회




 함께 힘을 모아 하다 보면 아무리 어려운 일이라도 해결해 나갈 수 있지요. 데이콘 컴피티션에 도전할 때도 혼자 참여하는 것보다는 다른 사람들과 팀을 이뤄 참여하는 것은 어떨까요? 하지만 어렵게 팀을 모았다고 해도 팀이 제대로 굴러가는 것은 다른 문제입니다. 팀 프로젝트를 성공적으로 이끌기 위해서 우리는 어떻게 해야 할까요? 저는 확실한 팀의 이해체계적인 일정 수립이 팀을 성공으로 이끈다고 생각해요.

 팀을 이해하고 일정을 수립할 때는 무엇을 고려해야 할까요?



# 팀 이해하기


 팀을 모으고 가장 먼저 해야 할 일은 서로를 이해하는 일이에요. 꼭 다음과 같은 사실을 이해하고 대회를 시작하셔야 해요!

 

  1. 대회에서 얻고자 하는 것은 무엇인가?

 

 수상을 목적으로 열정적으로 대회에 참여한다면 많은 것을 배울 수 있지요. 하지만 모든 사람들이 수상을 목적으로 대회에 참가 버튼을 누르지는 않아요.

 이제 막 데이터 분석, 인공지능을 접하는 사람이라면 수상보다는 코드를 작성하면서 공부하는 것에 더 큰 의의를 두어요. 반대로 이미 여러 번 대회를 경험한 사람은 1등 수상에 더 큰 의미를 둘 거예요. 혹은 수상권에 있으면서도 수상보다는 공부에 더 큰 의의를 두는 사람들도 있을 수 있지요.

 우리는 팀원들의 마음속 목표를 공유고 "싱크"를 맞추는 작업이 필요해요. 꼭 목표가 같을 필요는 없다고 생각해요. EDA를 공부하고 싶은 사람은 EDA에 집중하여 모든 역량을 쏟아내면 되고, 모델링에 집중하고 싶은 사람은 EDA 보다 모델링에 집중해서 더 많은 시간을 투자할 수 있지요. 하지만 서로가 어떤 것을 목표로 삼는지 꼭 이해하고 있어야 합니다.

 

  1. 대회에 얼마나 많은 시간과 노력을 투자할 것인가?


 대부분의 사람들이 직장 생활을 하면서, 학교를 다니면서 데이콘 대회에 참가합니다. 코드 제출을 직업으로 삼지 않기 때문에 하루 종일 모든 시간을 대회에 투자할 수는 없지요. 누군가는 일주일에 한두 번, 누군가는 매일매일, 각자 대회에 투자하고자 하는 시간은 달라요. 서로 어느 정도의 시간을 투자할지 사전에 합의가 되어 있어야 갈등을 미연에 방지할 수 있어요. 이렇게 서로 합의된 투자 시간이 정해지면 책임지고 끝까지 지켜야 하지요. 

 

  1. 각자 어떤 능력을 갖고 있는가?


 "시각화를 할 줄 알아요.", "모델링을 할 줄 알아요.", "저는 R을 할 수 있어요." 등 모호하게 자신이 갖고 있는 능력을 이야기하기보다는 각자 자신의 능력, 경험을 객관적으로 보여줄 수 있는 포트폴리오를 만들어야 해요. 구체적으로 작업 속도, 개인의 역량을 서로가 알게 해야 효율적으로 일정을 관리할 수 있어요!

 

 

# 일정 수립하기


 무작정 대회에 참여하여 베이스라인 코드를 고쳐나가다 보면, 대회를 이해하고, 데이터만을 분석하는데 소홀해질 수 있어요. 하지만 대회의 특성, 데이터 속 숨겨진 특징들을 찾는 과정은 모델링보다 더욱 중요해요. 주어진 시간을 쪼개어 일정을 수립하여 단계별로 대회를 진행하는 것은 어떨까요?

 

 대회에 따라 절차나 기간이 바뀔 수 있지만 기본적인 틀은 다음과 같이 만들 수 있어요.

 


 

1단계 : 팀 이해하기, 자료 조사하기, 환경 구축하기( 1주 차 )


앞서 설명드린 팀을 이해하는 단계가 가장 먼저겠지요? 그렇다면 이제 대회를 이해하기 위해 관련 자료를 수집하는 단계가 필요합니다. 또한 팀 프로젝트에서 빠른 소통과 코드공유는 정말 중요해요. 이를 위해서 github, dropbox, google drive등 적절한 플랫폼을 선택하여 팀 프로젝트 환경을 구성해야 한합니다.

 

2단계 : EDA, 후보 Feature 선정하기( 2~3주 차 )


본격적으로 데이터를 분석하고, 후보 feature를 선정하는 단계에요. 1단계에서 조사한 자료들을 바탕으로 오로지 데이터 분석에만 집중하여 여러가지 통찰을 얻어내는 시기지요. 팀원별로 역할을 분담하여 데이터를 샅샅이 분석해 봅시다.

 

3 단계 : 베이스 모델 구축하기, 검증 프로세스 구축하기( 4주 차 )


 2단계에서 데이터를 이해했다면 이제 이 데이터를 바탕으로 베이스 라인 모델을 구축해야 해요. 아주 간단하지만 처음 다운받은 data에서 submission 파일까지 생성하는 코드를 작성하는 단계에요. 과적합을 피하기 위한 교차 검증 프로세스도 구축해야 한다는 사실을 잊지 마세요!


4 단계 : 모델 수정하기, 새로운 모델 도입 및 평가하기( 5주 차 )


 모델 학습을 위한 모든 준비가 끝나고 본격적으로 모델링을 하는 단계에요. 여러 종류의 모델, 여러 종류의 feature를 실험해 보면서 가장 최적의 feature 조합, 높은 성능의 모델을 찾아봅시다.


5 단계 : 모델 튜닝 및 앙상블 하기( 6주 차 )


이제 대회 종료가 슬슬 다가오고 있어요. 지금까지 찾은 모델을 미세 튜닝하면서 점수를 최대한 끌어올리는 한편, 높은 성능을 보였던 모델들을 앙상블하여 최종 모델을 완성해 봅시다.



로그인이 필요합니다
0 / 1000
팽삼
2020.10.14 11:13

처음 부분이 많이 공감됩니다. 팀원들 간의 목표와 열정을 맞추는게 중요하더라구요. 시간이 지나면서 열정있는 사람은 답답해하고 가볍게 참여하는 사람은 부담스러워하는 것 같아요. 이부분을 맞추는게 무엇보다 중요하다 생각합니다.

감귤맨
2020.10.14 12:38

네 맞아요! 각자 팀플에서 얻고자 하는 목표가 다르기 때문에 차이점을 확실히 인지하고 시작해야 한다고 생각해요.

당쇠
2020.10.14 14:26

귤맨님 팁 감사합니다.