(Industry) 회사에서 데이터 사이언스 프로젝트 관리하기

프로젝트 관리 단계



매개 프로젝트를 6개 단계로 관리하고 단계별 작업목록을 작성한다.


프로젝트가 끝날때까지 매 단계별 결과에 따라서 그 이전의 단계로 다시 돌아갈 수도 있다.
예를 들면, 알고리즘을 개발하고 결과 분석 단계에서 문제가 있거나 결과가 이상적이지 
않아서 feature engineering이 다시 필요 할 경우 데이터 분석 단계로 다시 돌아가서 시작
할 수 있다.

문헌 검토 (Literature Review)

- 관련된 문헌 정보를 Google Scholar과 같은 문헌정보 사이트에서 추출
- github.com에서 관련된 open source code를 검색
- medium.com에서 관련 글들을 검색 등

데이터 분석 (Data Analysis)

- feature engineering 혹은
- unsupervised learning (e.g., auto-encoder)을 통한 automatic feature engineering

알고리즘 개발 (Algorithm Development)

- baseline을 먼저 몇개 실현
- 간단한 모델로 부터 점차 복잡한 모델 (hypothesis) 실현
- 서로 다른 모델을 ensemble / stacking 실현

결과 분석 (Result Analysis)

- 많은 evaluation metrics를 측정해 본다고 했는데
- 시작전에 어떤 evaluation metrics를 최적화 해야 할지 정하는게 좋다

리뷰 (Review)

- 알고리즘을 리뷰하는 과정

적용 (Deployment)

- 코드들을 class-based API로 변환
- init(), train(), predict(), upload_model(), download_model() 등
- unit test 와 pip packaging


버전 관리



프로젝트의 최종 목적은 초기의 목적 혹은 미리 정해놓은 KPIs (Key Performance Indicators) 최적화 하는 데 있다. 하지만 첫 술에 배부를 수는 없는 법, 가장 중요한
것은 최소한의 실현 가능한 Product (Minimum-Viable-Product) 를 먼저 구현하는 것
이 중요하다. 연구부문에서 business 부문과 일 할 때도 많이 중요한 듯.

MVP버전이 끝나고 나면 다음 버전에 대해서 다시 구현 할 혹은 테스트 할 hypothesis를
정하고 단계별로 계속 버전을 업그레이드 해나갈 수 있다.


프로젝트 단계와 버전 관리에 대해서 요약해 봤지만 연구는 항상 생각하는대로 되면
연구가 아니다. 하지만 위의 프로젝트 단계와 버전 관리를 통해서 통제할 수 있는 범
위내에서 연구와 delivery를 같이 관리해 나가는 데는 도움이 될 듯 하다.

원문보기: https://towardsdatascience.com/data-science-agile-cycles-my-method-for-managing-data-science-projects-in-the-hi-tech-industry-b289e8a72818