구버전 블로그에서 옮겨왔습니다.
지난 6월 25일, 저는 빅데이터분석기사(빅분기) 실기 시험을 치르고 왔습니다. 후기가 늦은 이유는 바로 어제, 7월 8일 금요일, 2주만에 가채점 결과가 나왔기 때문인데요. 다행히 91점으로 합격하여 여러분께 실기 후기로 찾아뵐 수 있게 되었습니다. 이제부터는 빅데이터분석기사를 커리어에 추가해야겠네요ㅋㅋ
필기 합격 후기는 저번 글에 알려드린 바 있는데요, 이번에는 그렇게 복잡한 설명은 필요하지 않을 것 같습니다.간단하게 몇 가지만 말씀드리고, 빅데이터분석기사 실기 시험을 치루시는 분들의 합격을 기원하겠습니다!
개요
빅분기 실기는 단답형 30점(3점 10문항), 작업형 1유형 30점(10점 3문항), 작업형 2유형(40점 1문항)의 세 영역으로 구성되어있습니다.
- 단답형:대부분 필기와 겹치는 범위의 (서술형 아닌) 진짜 단답형
- 작업형 1유형: 주어지는 csv 파일을 읽고 결측처리 등 전처리를 살짝 한 후 평균 등 기술통계량을 Python 또는 R로 코딩해 구하는 문제
- 작업형 2유형: 주어지는 학습용 csv 파일을 읽고 전처리와 머신러닝 모델 학습 및 평가를 거쳐 평가용 csv 파일에 주어진 데이터마다 라벨을 Python 또는 R로 코딩해 붙이는 문제로, 라벨의 예측력에 따라 부분점수 있음
과락은 없으며, 전체 100점에서 60점 이상을 받으면 합격입니다. 보통 단답형을 10점 또는 20점 받고, 작업형 1유형을 20점 또는 30점 받은 다음, 작업형 3유형에서 남은 20점 가량을 부분점수로 받아가는 식으로 합격하는 것 같았습니다. 작업형 2유형에는 다들 모델이 고만고만해서 그런지 은근 만점이 잘 나왔습니다.
저 같은 경우에는 단답형 7문제를 맞춰 21점, 작업형 1유형 만점 30점, 작업형 2유형 만점 40점이었습니다.
접수
5월 23일, 즉 시험 한 달 전부터 접수가 시작되었습니다. 저는 회사에 있다가 퇴근하고 나서야 접수 일정을 체크하고 접수에 돌입하였는데요, 집 바로 옆 5분 거리에 성동공고 고사장이 있는데도, 집에서 1시간 거리의 중랑구 서일대학교 밖에 고사장이 남지 않았습니다. 서울 전역 대여섯개의 고사장 중 서일대 고사장 단 하나! 여러분은 10시 땡치면 접수하세요...
아무래도 빅데이터분석기사 인기가 높기도 하고, 필기에 비해 실기 합격률이 낮으니 인원 적체도 있었을거고, 무엇보다 전원 컴퓨터로 시험을 보다보니 컴퓨터가 있는 고사장이 많지 않아서였던 것 같습니다. 멀리 가야한다는 귀찮음에 시험을 치지말까 하다가, 아내의 나중에 후회하지말라는 조언을 듣고 참고 시험을 접수했습니다.
공부
책은 이기적 빅데이터분석기사 실기를 샀습니다. Python의 경우 이 책을 많이 보지만, R은 다른 책을 봐야하니 시나공이나 수제비 책 등을 찾아보면 될 것 같습니다. 책에 대한 만족도는 높았습니다. 단답형은 심리적인 최소 점수, 그러니까 10점 이상은 받을 수 있는 정보들이 있고 작업형도 파이썬 기초부터 numpy, pandas, scikit-learn의 세 가지 필수 라이브러리에서 필요한 함수들의 사용법을 모두 알기쉽게 알려주었습니다.
접수 후 바로 공부를 시작했고, 기존 계획은 필기와 동일하게 퇴근 후 하루 1~2시간씩 공부하는 것이었습니다. 하지만 단답형의 경우 필기와 거의 비슷해 암기노트만 만들어서 암기했고, 작업형은 책에 있는 몇 가지 예제들을 따라가며 시험 유형을 파악하고, 늘 똑같은 시험 유형에 딱 맞는 함수들의 흐름만 익혀, 암기노트에 암기할 함수 이름들을 적어 단답형과 같이 외웠습니다. 그랬더니 사실상 총 공부시간은 한 달동안 10시간 남짓이었던 것 같습니다. (공부하기 싫어서 앞뒤중간에 놀았던 시간 포함하면 20시간 정도ㅋㅋ)
필답형에서는 암기노트가 솔직히 큰 도움이 되지는 않았지만 그래도 덕분에 절반(5문제) 정도를 맞추고 업계 지식으로 2문제 정도를 더 맞춘 것 같습니다. 나머지도 시험장을 나와서 찾아보니 필기 때 공부했던 기억이 나는 답안이었습니다. 작업형도 암기노트가 굳이 필요하지 않은 것 같기도 합니다. Python 내장함수인 dir()과 help()를 시험장에서도 적극 사용했습니다. 중요한건 함수 이름이 아니라 작업형에서 늘상 나오는 문제의 패턴과 각 패턴에 필요한 함수들의 전반적인 흐름인 것 같습니다.
즉 작업형은 여러 번 예제와 기출을 풀어보고 그 흐름이 손에 익는게 중요했습니다. 제 경우에는 전처리는 sklearn.preprocessing.MinMaxScaler(최소최대정규화)와 pandas.get_dummies()(원-핫 인코딩), 모델은 sklearn.tree.DecisionTreeClassifier(결정트리), sklearn.ensemble.RandomForestClassifier(랜덤포레스트), sklearn.svm.SVC(소프트벡터머신) 세 가지만 늘 사용했고, 평가를 predict_proba()와 sklearn.metrics.roc_auc_score(ROC-AUC)로 하는 루틴을 익혔습니다. 모델에서 결정트리와 랜덤포레스트는 max_depth를 하이퍼파라미터 조정을 매뉴얼로 3~10 사이로 해주었고, 소프트벡터머신은 C, 즉 정규화 파라미터를 0.1~100으로 조정해주었습니다.
시험날
시험날은 한참 버스를 타고 서일대로 갔습니다. 고등학교 교실 절반 사이즈의 작은 전산실에 30여명 정도가 각자 컴퓨터가 있는 자리에 앉았습니다. 있으나마나한 칸막이가 숨막히게 사이사이에 있었습니다만, 아무래도 저는 컴퓨터로 시험을 치다보니 마음이 필기보다 여유로웠습니다.
단답형은 처음에 애매하게 모르겠는 문제들이 나와서 대충 쫘르륵 적었는데, 확실히 아는 문제가 그래도 4문제는 되었습니다. 그러면 12점을 확보하기 때문에, 작업형 1유형에서 실수로 한 문제 10점을 날리고 작업형 2유형에서 모델을 대충 만들어서 10점을 날려도 아슬아슬하게 62점 합격이므로 그냥 넘어갔습니다.
작업형 1유형은 그렇게 어렵지 않았습니다. 중간에 조건 하나를 잘못 읽어서 답이 이상하게 나왔는데, 다행히 금방 문제점을 찾아서 해결했습니다. 저는 기출 풀 때나 시험에서나 한 문장만 코딩해서 답을 내곤 했는데, 사람들의 후기를 읽어보면 어렵게 생각하시느라 못 푸는 경우가 많았습니다. 아무튼 다 풀고 나서, 1유형은 만점 30점이 안 나오면 내가 실수한 것이므로 떨어지는게 맞겠다는 생각을 했습니다.
작업형 2유형은 다행히도 기출에 비해서도 쉬웠습니다. 2유형은 기출 때부터 제가 익힌 루틴대로 갔고, 사소한 문제가 있었다면 라벨이 0 또는 1의 두 가지가 아니라 1~4의 multilabel이었던 점이었습니다. 그래서 ROC-AUC가 아니라 F1-score였나? 다른 방식으로 채점을 했는데, 제 경우에는 ROC-AUC가 높으면 F1도 높겠지 하는 식으로 그냥 외운대로 평가해서 모델을 선택했습니다. 최종선택모델은 아마도 랜덤포레스트였던 것 같습니다.
중간에 작업형 문제 하나가 제출 버튼을 눌러도 제출이 안됐는데, 개발자로 보이시는 관리자 한 분이 돌아다니시면서 "제출이 몰려서 제출이 조금 늦어질 수 있으니 다른 문제 풀고 오세요"라고 말씀해주셨습니다. 같은 개발자로서 안타까웠습니다. 트래픽 문제...ㅋㅋㅋ
다들 시험시간 1시간 반이 지나고 퇴실할 수 있게 되면 다들 빠르게 퇴실했습니다. 중간에 버그를 만나면 퇴실이 늦어질 것 같기도 한데, 작업형 유형이 다들 사소하게 기출문제와 달라서, 작은 버그를 중간중간 만날 수도 있습니다. 그래도 익숙해지기만 한다면, 필기보다 쉽게 합격할 수 있을겁니다.
저는 귀찮음을 이겨내고 정보처리기사 실기 시험 접수에 성공하면 다시 돌아오겠습니다.
'개발일지' 카테고리의 다른 글
scikit-learn 사이킷런 공식 문서 한글 번역 프로젝트 / 사이킷런 repository contribution 후기 (3) | 2022.12.24 |
---|---|
2022 정기3회 정보처리기사(정처기) 실기 후기 (0) | 2022.11.26 |
2022 정기2회 정보처리기사(정처기) 필기 후기 (0) | 2022.09.13 |
2022 제4회 빅데이터분석기사(빅분기) 필기 후기 (0) | 2022.09.13 |
댓글