ADP 실기 31회 불합격 후기
결론부터 말하자면 불합격이다. 아까운 불합격도 아니었다.
두달간 퇴근하고 매일 3시간 공부하고 킬러 문제도 준비했다고 생각했는데, 실전의 문은 턱없이 높았다.
난이도는 아주 어렵지는 않았지만 보고서 작성 연습을 두 번밖에 하지 못한 것이 패착이라고 생각한다.
ADP 실기는 얼마나 많이 알고 있냐가 아니라, 알고 있는 것을 얼마나 정확히 빠르게 적을 수 있는지의 싸움이었던 것 같다.
깊게 반성하고 다음 회차를 위해 보완하고자 하는 점들을 정리하였다.
1) 다양한 모델의 이진분류뿐만 아니라, 다중분류 옵션도 알아야 한다. 예를 들어, 신경망 분류 모델은 마지막 층의 softmax 활성화 함수를 사용하기에 종속변수의 원핫인코딩이 필수이지만, sklearn의 Logistic Regression의 경우 자체 내장 함수로 인해 원핫인코딩을 할 필요가 없다. (오히려 원핫인코딩을 하면 오류가 난다.)
2) sklearn의 Soft voting, Hard voting뿐만 아니라, 다양한 모델도 적용할 수 있도록 자체 voting 코드를 준비해야한다.
3) 다중분류 문제의 분류지표(precision, accuracy, recall, f1)을 계산하고, 분류지표가 의미하는 바를 알아야 한다.
4) 날짜 데이터 전처리를 능숙히 할 수 있어야 한다. 날짜 형식 데이터의 사칙연산을 수행하고, 특정 단위시간으로 자유자재로 묶거나 풀수 있어야 한다. 문자형 등 형식의 데이터를 날짜형, 숫자형 등으로 능숙히 변환할 수 있어야 한다.
5) 범주형 변수에 대해 레이블 인코딩, 데이터 정의에 따른 맵핑, 원핫 인코딩을 '언제', '어느' 데이터 스텝에서 해야하는지 정확히 알고 있어야한다. 예를 들어, 원핫 인코딩을 먼저 진행한 후에 시각화, 오버샘플링 등 스텝을 진행한다면, 다시 원본 데이터를 찾아야 하는 경우가 있는데 이러한 과정들이 아주 아까운 시간이다. 또한, 다양한 전처리 기법들에 맞춰 데이터를 계속 백업하는 습관을 가지자. 전처리한 데이터를 계속 df로 저장하게 되면, 추후 전처리 유무에 따른 모델 성능을 비교할 때 난감할 수 있다.
6) 이상치/결측치 처리에는 다양한 처리 방법이 있지만, 실전에서는 확실한 한두 가지 기법과 논리만 준비하자. 3~5점에 너무 많은 시간을 소요할 필요는 없다.
7) 가능한 한 적게 작성하여 많은 것을 할 수 있는 코드를 준비하자. 예를 들어 8개의 변수에 대해 시각화를 할 때, 일일히 모든 변수에 대해 같은 코드를 8개 작성할 필요없다. 반복문을 적절히 이용하여 하나의 코드로도 가능하다. 단, 시각화를 할 때 HWP 파일로 보고서를 작성한다면 하나의 캡쳐로 많은 그래프를 캡쳐할 수있도록 코드를 준비해가자. (필자는 변수 개수가 짝수든 홀수든 그래프가 가로 2개/세로 N로 한 화면에 출력하는 코드를 준비할 예정이다.)
8) 보고서 작성은 연습이 꼭 필요하다. 시험 한달 전부터 시간을 재며 연습할 계획이다. ADP 시험장에서 시간이 없어서 마구 캡쳐하여 설명도 제대로 못달고 보고서를 제출했었다. 통계파트에서 베이지안 문제를 제외하고 어느정도 풀었지만 점수를 받지 못했던 이유가 여기에 있다고 생각한다. '파이썬을 이용한 분석 통계학' 홀수 문제를 직접 파이썬으로 치고 서술하며 연습할 예정이다.
9) 머신러닝 모델 운영, 데이터 품질 관리 및 개선을 위한 생각을 서술할 수 있어야 한다. 아무리 고급 기술을 알더라도 서비스하지 않으면 의미가 없다. 이 모델로 어떤 비즈니스를 창출할 수 있을까?, 배치 학습과 온라인 학습 무엇이 적절할까?, 데이터 품질을 어떻게 평가하고 관리할까?, 모델 모니터링 시스템은 어떻게 구축하며, 주기적으로 어떻게 모델을 학습할까? 등 고민이 필요하다. IT 개발자 친구의 추천으로 '데이터 드리븐 리포트'에서 좋은 글을 발췌하며 읽을 예정이다.
10) 마지막으로, 위의 모든 것이 능숙해지면 'An Introduction to Statistical Learning with Application in Python' 책의 pdf파일로 킬러문제를 대비할 예정이다. 과거 기출의 생존 분석 문제, Log-rank 문제를 이 책으로 대비할 수 있었다고 한다. 하지만 이 책까지 공부할 시간적 여유는 아마 없지 않을까..?