빅데이터분석기사(빅분기) 2회(실기) 후기

빅데이터분석기사(빅분기) 2회(실기) 후기

2021년 6월 19일(토)에 실시된 빅데이터분석기사(빅분기) 2회 실기 시험 응시 후 기출 경향과 더불어 이것저것 정리해보았다.

준비 과정

먹고살기 바쁜 와중에 시험 전 두 번이나 안내문자를 보내줘서 잊지 않고 응시할 수 있어 좋았다.

빅데이터 분석기사 수험 안내 문자

그리고 모두가 쓰는 클라우드 대신 몽글몽글한 서비스명인 구름(goorm) 의 환경에서 실습할 수 있도록 시험 전에 수험생이 환경을 미리 체험해볼 수 있도록 조치를 해주없다. 하지만 R 사용자는 RStudio가 익숙하고 Python 사용자는 Jupyter Notebook 환경이 익숙한게 보통인데 구름 환경은 자동완성과 도움말을 보기가 매우 불편하다. 본인이야 어차피 R과 Python을 거의 매일 쓰다보니 상관은 없지만 관련 함수 및 그 인자가 머릿속에 있지 않는 분들은 꽤나 힘들겠다는 생각을 했다.

그리고 시험에 제공되는 R 패키지 목록과 Python 라이브러리 목록을 자격검정 홈페이지게시물을 통해 사전 고지를 했기 때문에 대략적으로 어떤 기법이 시험에 나올지 예상할 수 있었다.

R의 경우 중요 패키지는 다음과 같다.

전처리: dplyr/lubridate/reshape2
머신러닝: caret/e1071/pROC/rpart/randomForest/xgboost/nnet
시각화: visNetwork/ggplot2


Python의 경우 중요 라이브러리는 다음과 같다.

전처리: numpy/pandas
머신러닝: scikit-learn/scipy/xgboost
시각화: matplotlib
기타: beautifulsoup4/selenium/urllib3

Python에서 통계분석에 비중있게 쓰이는 statsmodels 라이브러리가 없기 때문에 선형회귀나 로지스틱회귀의 p-value를 보고 변수를 제거하는 문제가 나오지 않을 것이라 예상했다. 그리고 Two-way ANOVA, 시계열 분해, ARIMA 등 다양한 통계분석기법을 범위에서 제외시킬 수 있었다. 하지만 beautifulsoup4/selenium/urllib3 라이브러리가 언급되었다는 것은 html 또는 xml 파일을 파싱하거나 특정 url에서 데이터를 가져온다던지, api 활용 문제가 나올 수 있다는 판단을 하였다. R에서는 기본 함수를 사용하여 크롤링이 가능하기 때문에 RSelenium 패키지가 언급되진 않은 것 같은데, 그렇다고 또 rvest 패키지도 보이지 않아, 특정 웹사이트 크롤링을 하더라도 매우 단순한 수준의 전처리가 나올 것이라고 보았다. 만약 외부 접속하여 데이터를 가져오는 것이 나온다면 api 정도로 예상한다.

추가로 좀 걱정되는것은 R의 nnet 이다. 이것은 신경망을 위한 패키지인데. 결국 실기시험에 신경망 문제를 낼 수 있다는 야망이 보인다고나 할까…. 이와 비슷한 것은 R과 Python에서 둘 다 볼 수 있는 xgboost 도 되겠다. 향후 시험이 여러 회차 실시되고 전반적으로 안정화 되면 분명히 고배점 문제로 나올수도 있다 본다. 최악의 경우 네트워크 분석을 위한 R 패키지 visNetwork 가 있는데, 이것은 다른 패키지의 의존패키지로 같이 설치된 것이 아닌가 라는 생각이 든다. 위험한 패키지이지만 차라리 네트워크 분석 문제가 출제되면 차라리 틀리고 다음 회차 시험을 보는 것이 속편하지 않을까 한다.

상기와 같이 적당히 파악한 다음 손놓고 따로 준비는 하지 않았다.

시험 당일

강남 그린컴퓨터아카데미로 갔다. 컴퓨터 학원이다보니 감독관분들이 다 전문가 처럼 느껴졌는데 어떤 문제가 발생할 경우 바로바로 파악하고 조치해줘서 굉장히 믿음이 갔다. (이거 꼭… 뒷광고 같구만) 아무튼 향후 실기시험 응시할 경우 컴퓨터학원 또는 IT교육장을 택하는 것을 추천한다. 어디 학교 컴퓨터실에서는 전문적인 조치를 받기 어려울것 같다는 생각이 많이 들었다.

1차로 온도체크하고 소독제 바르고 고사장 안내를 받았다.
고사장 근처에서 2차 온도 체크하고 입실했다.

감독관이 9시 30분 이후에 물건을 넣으라고 지시했음에도 불구하고 옆자리 수험생은 자꾸 가방을 만지작거리며 볼펜을 꺼냈다 넣었다 반복해서 굉장히 거슬렸다. 나중에는 시험 도중에도 볼펜으로 수험표에 필기하는듯한 소리가 들리긴 했는데 결국 감독관이 제제하여 그만두게 되었지만 부정행위로 왜 간주하지 않았는지… (당시에 이의제기를 하지 않은 본인 반성)

정리해보는 시간표.
09:30: 입실 완료
09:50: 시험 환경 url(dataq.goorm.io) 접근 및 ID/PW 입력하여 접속
10:00: 시험 시작
10:30: 화장실 이용 가능
11:30: 퇴실 가능
13:00: 시험 종료

출제 경향

분명 코드 잘 못짜는 통계 좋아하는 교수님이 문제를 만든 것 같다. 아주 단순한 이상치 처리와 결측치 처리를 너무 좋아하는게 티가났다. 이건 기사가 아니라 통계기능사가 아닐까 싶은 수준.

문제 유형

  • 주관식 단답형(3점) 10문제
  • 단순 작업형(10점) 3문제
  • 모델링(40점) 1문제

단답형은 텍스트로 입력을 하는 것이었고, 작업형 10점 배점은 print() 함수로 마지막에 그 결과를 출력하도록 하는 것. 작업형 40점 배점은 결과 파일을 csv로 저장하는 것이었다. 실제 작성하는 script 파일에 주석으로 다 가이드가 나와있으니 수험생은 중간 연산코드만 잘 짜면 된다.

출제 범위

이번 시험의 경우 단답형 문제를 잘 풀려면 주어진 데이터의 이상치와 결측치를 잘 확인하고 이상치의 경우 특정 값 이상인 경우 어떤 값으로 대체하고, 결측치는 평균으로 바꾸고 일단 선형회귀분석을 해본 경험과 선형회귀의 경우 FM(Full Model)에서 변수를 하나씩 제거하여 RM(Reduced Model)을 만들어보고 평가를 해본다. 그리고 수치형 종속변수의 경우 선형회귀분석 말고도 다양한 분석 기법을 쓸 수 있으니 모델을 바꿔가면서 그 성능을 비교해보고 때로는 과적합을 방지하기 위해 하이퍼파라미터도 조정해볼 수 있겠다. 만약, 종속변수가 범주형인 경우 분류모델을 쓸텐데 그 때 정확도나 ROC곡선 등 분류모델 평가기법도 써보고, 경우에 따라서는 Boosting 모델도 사용할 수 있겠으며 왜 Boosting 성능이 좋은지 원리를 한 번 찾아보았다면 10문제 중 9문제는 맞출 수 있었다고 할 수 있다.

뭔가… 통계를 제외한 모든 데이터 분석 방법을 훑은 것 같지만 상기 문단을 잘 읽어보기 바란다.

그럼 나머지 한 문제는 뭐냐? 신경망 단순 계산이었다. 암산이 될정도로 쉬운 계산이었으니 그러려니 하면 된다.

작업형 10점 배점 문제는 이상치와 결측치 처리인데 너무 쉬워서 이걸 틀리면 그냥 실기시험 불합격이니 넘어가도록 하겠다.

작업형 40점 배점 문제는 train, test 데이터가 각각 주어지고 분류모델을 직접 만들어 예측 확률값을 제출하는 것이다. 평가는 ROC-AUC로 한다고 했다. 본인은 그냥 이항로지스틱 회귀분석만 적당히 하고 냈는데(금매달 욕심…) 시간 많이 투자하신 분은 train 세트로 validation 세트도 나누고 RandomForest도 돌리고 심지어 CV를 했다고 하는 분도 있었다. 사실 40점 문제게 크게 투자를 하지 않은 이유는 10점 문제가 단순 이상치/결측치 처리 문제여서 40점 문제는 제출만 해도 기특하다고 20점은 주지 않을까? 하는 마음에서였다.

혹시나 떨어지면 또 칠 예정이고 또 이렇게 정성스런(?) 후기를 쓸 예정이니 결과는 어떻게 되던 관계 없다. (대충 삽시다.)

아쉬운점

고사장

없었음. 좋았음.

시험문제

작업형의 경우 문제가 생각보다 성의가 없었다. (출제비 꽤 많이 받았을텐데…)

기타

평가 사이트에 갑자기 트래픽이 많이 몰려서 그런지 최초 로그인이 안되는 분들이 많았다. 물론 다중 가상화 서버의 자원할당과 트래픽 관리가 어려운건 이해하지만 최대 접속 트래픽이 충분히 예상되는 환경에서 원활한 환경이 제공되지 않아 아쉬웠다. 특히 평가 도중에 지원을 받을 수 있도록 채팅서비스(channel.io 서비스)가 제공되는데 해당 기능이 로드되는데 또 많은 시간을 잡아먹어 또 별로였다.

총평

일단 금메달 따고 나왔는데, 마지막 문제 혹시나 잘못되면 40점이나 날아가기 때문에…. 안심할 수 ㅇ벗다.

결과

R로 시험쳐서 특정 과목 0점 나온사람이 많은데 일단 본인은 R로 시험쳐서 고득점 나옴.
합격했습니다.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×