etc) 빅분기 - 실기시험 준비

etc) 빅분기 - 실기시험 준비

빅데이터 분석기사(빅분기) 실기시험을 치르기 전에 준비해야 할 사항을 정리해보자.


들어가기에 앞서

본 글을 읽기 전에 관련글을 먼저 읽고 오면 더 좋다.
빅분기 실기시험 후기
빅분기 실기시험 R 패키지 분석
빅분기 실기시험 Python 라이브러리 분석

관련 자료

아래 링크를 통해 Kdata에서 제공하는 빅분기 실기평가 관련 공식자료를 다운받아서 확인해보자.
빅데이터분석기사_실기시험_제공자료.zip 다운받기 [클릭]

시험 환경

상기의 공식자료를 확인해보면 대략적인 느낌은 알 수 있겠지만 직접 시험을 치르는 것과는 또 다르다. 시험은 클라우드 기반의 환경에서 치뤄지는데 이는 R의 RStudio나 Python의 Jupyter Notebook 과는 많이 다르다. 오히려 프로그램 개발을 해본 사람에게 더 익숙한 환경이다. 기존 환경과 크게 다른 점은 다음과 같다.

● 결과는 print() 함수로만 확인 가능
● 자동완성 지원하지 않음

일반적으로 R 또는 Python을 사용하는 환경에서 즉각즉각 내용을 확인하다가 갑자기 print() 함수라는 제약이 걸리다보니 불편할 수 있다. 그리고 고사장의 모니터가 크지 않은 경우가 많기 때문에 콘솔창이 더욱 협소하여 다루는 데이터의 변수 개수가 많은 경우 제법 불편할 수 있다. R이나 Python 초심자의 경우 데이터 파악을 위해 head()tail() 함수 또는 메서드를 사용하는 대신 엑셀 프로그램으로 해당 파일을 열어 확인하는 사람이 있는데 이런 습관을 가진 분은 재시험을 치뤄야 할 가능성이 매우 높다고 할 수 있겠다.

자동완성도 출력만큼 큰 제약이라고 할 수 있다. 사실상 Jupyter Notebook에 익숙해져있는 Python 사용자라면 자동완성이 참 안되기 때문에 그럭저럭 익숙해져 있을 수 있으나 이외의 경우에는 자동완성의 혜택을 많이 받으면서 코드를 작성했을 가능성이 높다. 이것은 평소에 사용하는 라이브러리/패키지, 함수/메서드를 거의 외우는 방법 밖에 없다.

빅분기 2회차에서는 구름(groom.io)을 통해서 실기시험을 치를 수 있었는데 현재 실습 체험 환경 페이지를 제공하고 있지 않다. 그리하여 goormIDE를 통해서 거의 비슷한 환경을 체험해볼 수 있다.
goorm.io 의 goormIDE Python 예제

직접 데이터를 업로드 하여 R 또는 Python을 사용하여 데이터분석을 한 번 해보면 시험환경 대비는 충분할 것이라 본다.
※ 데이터 업로드 방법은 여기 참고

R 사용자의 경우

R은 도움말 출력이 별도의 창에 표기되기 때문에 print() 함수로 볼 수 있는 내용이 제한적이다. 함수의 인자를 보려면 str() 또는 args() 함수를 활용할 수 있다.

1
2
3
4
5
6
7
print(str(read.csv))
## function (file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)
## NULL

print(args(read.csv))
## function (file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)
## NULL

안타깝게도 모든 인자가 출력되진 않고, 각 인자의 설명 또한 알 수 없다. 그리하여 utils:::.getHelpFile() 함수와 help() 함수를 조합하여 도움말 전문을 출력할 수 있다. 아쉽게도 R이 별도의 창에 출력하도록 하거나 필요시 별도의 파일을 다운로드하게 하기 때문에 어쩔 수 없이 복잡한 코드를 추가로 입력하여 도움말 전문을 출력할 수 밖에 없다.

1
print(utils:::.getHelpFile(help(head)))

상기 코드의 결과는 너무 길어 생략하였으니 직접 코드를 실행하여 확인하기 바란다.

특정 패키지의 함수 또는 기타 객체 목록을 확인하려면 다음과 같이 ls() 함수를 활용할 수 있다.

1
2
3
library("beepr")
ls("package:beepr")
## [1] "beep" "beep_on_error"

Python 사용자의 경우

각 함수의 Docstring은 __doc__ 어트리뷰트로 접근하며, 다음과 같이 출력할 수 있다.

1
print(sum.__doc__)
  Return the sum of a 'start' value (default: 0) plus an iterable of numbers

  When the iterable is empty, return the start value.
  This function is intended specifically for use with numeric values and may
  reject non-numeric types.

특정 모듈의 하위 함수를 조회하기 위해서는 dir() 함수를 활용할 수 있다.

1
2
from statsmodels.formula import api
print(dir(api))
  ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 
  'gee', 'glm', 'glmgam', 'gls', 'glsar', 'logit', 'mixedlm', 'mnlogit', 'negativebinomial', 'nominal_gee', 
  'ols', 'ordinal_gee', 'phreg', 'poisson', 'probit', 'quantreg', 'rlm', 'wls']

출제 예상

R과 Python의 패키지/라이브러리를 확인해보았을 때 텍스트 마이닝, 생존분석, 연관규칙 분석, 이원 분산분석, 로지스틱 회귀의 변수별 유의성 관련 내용은 나오지 않을 것으로 보인다. 특히 Python에서 고급 통계분석을 지원하는 statsmodels 라이브러리가 등장하지 않은 것으로 볼 때 이론 부분에서는 통계에 조금 힘을 줄 수 있어도 실기에는 크게 걱정하지 않아도 될 것 같다. 그리고 머신러닝에서 앙상블 모델링까지 염두하고있는 것 같다. 그런데 기능사/산업기사가 신설될 경우 다소 난이도가 올라갈것으로 보이며(2회 기사 실기는 난이도가 매우 낮은편) 2회차 시험에서 모델 튜닝을 요구했기 때문에 실기 고배점 문제는 머신러닝 모델링에 중점을 두지 않을까 한다.

마무리

가장 좋은 것은 충분히 패키지/라이브러리와 함수/메서드, 그리고 각 인자를 숙지하고 시험에 임하는 것이다. 그러나 시험 범위가 결코 좁지 않기 때문에 모든 함수를 사전에 파악하고 암기하기 어렵다. 이 때 위에서 소개한 코드를 참고하여 모두가 합격에 한 걸음 가까이 갔으면 한다.

Your browser is out-of-date!

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

×