책에 대하여
서평
잘하는 데이터 과학자에 대해서 알고 싶었는데 자료가 많이 없어서 아쉬웠다. 그 와중에 이 책을 발견했고, 내가 알고 싶었던 내용들이 있었다. 데이터 과학에 대한 내용이 있어서 좋았고, 데이터 과학자가 데이터 과학 외로도 익혀야하는 전반적인 기술들을 - 소프트스킬, 소프트웨어 엔지니어링 - 알려줘서 좋았다.
내용 중에서 4장의 데이터 과학자 팁은 정말 기대했던 자료다. 시니어 데이터 과학자를 사수로 만나 이런 얘기를 듣고 싶었다.
각 장마다 마지막에 책 추천을 해줘서 좋다. 저자들이 주제에 대해서 영향 받은 내용을 더 파보기 좋다.
내용
데이터 과학 Pearls and Pitfalls
04 시작하는 데이터 과학자를 위한 개발과 운영 지침서 by AWS 데이터 과학자 「p.92-120」
문제 정의 단계
- ✓ Do
- 도메인 전문가와 자주 상의하세요.
- 비즈니스 문제에 맞게 ML 문제를 구조화하고 전반적인 프로세스를 구상하세요.
- 성과 측정 지표를 단순하고 관찰 및 개선 가능한 것으로 정하세요. 또는 직접 설계하고 구현하세요.
- 보유 데이터에 존재하는 선택 편향에 유의하세요.
- ML 모델의 기술적인 제약사항, 법률과 회사 규정 준수 여부 등을 미리 점검하세요.
- X Don’t
- ML을 사용할 수 없을 때에 ML을 사용하지 마세요.
- 사용하더라도 최초 단계부터 ML을 사용하지 마세요.
- ML로 비즈니스 목표를 어떻게 최적화할지 지나치게 고민하지 마세요.
데이터 준비와 피처 엔지니어링 단계
- ✓ Do
- 시간을 내어 데이터를 이해하고 검증하세요.
- 레이블링 작업은 많은 노력을 들여 신중히 수행하세요.
- 피처 엔지니어링은 반복 작업을 통해 점진적으로 완성해나가세요.
- 데이터 전처리는 사용하려는 모델 특징에 맞게 사용하세요.
- 예측 성능이 높다면 데이터 누수를 항상 의심하세요.
- X Don’t
- 가짜 상관관계가 있는 피처를 사용하지 마세요.
- 중요하지 않거나 사용하지 않는 피처는 계속 남겨두지 마세요.
- 데이터 증강 기법과 클래스 불균형 문제에 대한 리샘플링 기법은 검증 데이터셋과 테스트 데이터셋에 적용하지 마세요.
모델 개발과 평가 단계
- ✓ Do
- 모델의 특성과 제약 조건을 정확히 파악하고 개발 후보로 선택하세요.
- SOTA 대신에 단순한 모델로 시작하세요.
- 모델 오프라인 평가를 엄밀하되, 비즈니스 목적에 적합하게 수행하세요.
- 배포 예정의 모델이라면 더 다양한 기준으로 모델을 검증하세요.
- 딥러닝 모델을 튜닝하거나 디버깅하는 경우 최신 논문과 커뮤니티를 탐색하며 자신만의 노하우를 찾아나가세요.
- X Don’t
- 비교 대상 없이 모델 예측 성능의 좋고 나쁨을 이야기하지 마세요.
배포와 운영 단계
- ✓ Do
- 일반 소프트웨어 개발과 마찬가지로 ML 코드 품질을 높게 유지하세요.
- 첫 번째 모델은 단순하게 유지하면서 인프라를 검증하세요.
- 학습-서빙 비대칭 현상을 유의하세요.
- 퇴행성 피드백 루프 현상 발생을 미연에 방지하세요.
- 다양한 MLOps 도구로 실험을 추적하고 데이터셋, 피처와 모델을 관리하고 배포 이후 데이터 분포 이동을 모니터링하세요.
참고자료
- google-research/tuning_playbook: A playbook for systematically maximizing the performance of deep learning models.
- A Recipe for Training Neural Networks
- Rules of Machine Learning: | Google for Developers
- 복잡한 대규모 데이터 세트의 분석에 대한 실무 조언
소프트 스킬
우리가 실천의 사례가 된다.1
- ‘안 좋은 데이터’를 가진 기업에서 인내심을 가지고 관계 구축한다.
- 아무리 어려워도 배움에 대한 결단과 헌신이 성장과 성과로 이어진다.
차별화된 성장’데이터 사이언스 생존무기’
- (A) ML 기법/데이터 분석 방법, 비즈니스 활용.
- (B) 배경지식/비즈니스적 맥락.
다양하게 여러개를 파는 것도 압도적으로 하나를 파는 것만큼 가치있다.
시야는 명확하게, 방향은 일관되게.
- 주어진 상황을 커다란 문제로 인식하고, 단계별로 해결한다.
- ‘뭐라도 해야지.’
조직 우물 밖에서 교류한다.
자신에 대한 메타인지. 업무에 대한 메타인지. 목적, 맥락.
- 자신의 욕구와 상황 파악.
- 그 방향으로 가기 위한 경험이 무엇인지.
- 실제로 실행.
“그럼에도 불구하고.” “우리는 답을 찾을 것이다. 늘 그랬듯이.”
데이터 과학
‘데이터는 긴 호흡으로 이루어진다.’
데이터 과학자: 데이터를 활용해서 문제를 해결하는 사람.
- ‘업’: 궁극적으로 ‘문제를 해결하는 것’. ‘데이터 과학자스러운’ 문제보다 밑바닥에서부터 넓은 범위의 문제를 해결.
- ‘우리는 답을 찾을 것이다. 늘 그랫듯이.’
- ‘So What?’
“아마도 많은 데이터 과학자는 본인의 일에 이런 것이 포함되는지를 고려조차 하지 못할 겁니다. 그리고 혹자는 이런 일에 시간을 보내다 보면 본인의 전문성이 떨어지는 것이 아닌지 고민을 하다가, 결국 발을 빼기도 합니다.”❗️공감 「p.85」
- 캐글은 현실이 아니다.
- 현업 데이터 분석가 선발 과정에 회의감을 들 지경이다.「p.151-152」
‘Get your hands dirty.’2
- 익숙하지도, 알지 못하는 것도 다양하게 시도한다.
단순한 결과로 설득한다.오컴의 면도날
92-120은 DS에게 정말 좋은 heuristics! ★ ✓ 꼭 다시 읽고, 정리하고, 실천하기
데이터 과학과 엔지니어링
데이터 과학도 어느 정도 엔지니어링적인 요소를 포함하기 마련이다.
p.155-168은 사실상 소프트웨어 엔지니어링 업무이다.
- ‘모르면 배운다.’
데이터 과학 고유의 엔지니어링 워크플로우에 대한 관심이 필요할 때이다.
8장은 데이터 엔지니어링에도 도움이 되는 내용이다.