합격한 김에 개설한 AICE 탭.
추후에 PROFESSIONAL을 칠 수도 있으니 기록관리도 할겸
앞으로 몇 개의 포스팅을 할 예정이다.
AICE ASSOCIATE을 준비하는 이들에게 도움이 되었으면 한다.
AICE란?

AICE는 KT와 한국경제신문에서 공동으로 발급하는 자격으로,
인공지능 활용능력을 측정하는 시험이다.



AICE는 난이도에 따라 Professional / Associate / Basic / Junior / Future 5단계로 구분된다.
Basic 이하는 코딩이 없기 때문에 사실상 학생을 대상으로 한 시험으로,
취직에서 이점을 얻기는 어렵다.
따라서 본인이 취준생이나 직장인이라면
최소 Associate부터 준비한다고 생각해야 한다.
AICE Associate 시험 구성

AICE Associate 시험은 관계형 데이터( = 데이터프레임, 데이터테이블)을
다듬고 - 모델에게 학습시켜서 - 성능을 평가하는 일련의 플로우를 따른다.
위 과정을 총합 14문제에 걸쳐서 90분간 풀게 된다.

채점은 크게 세 분야에서 이루어진다.
내가 친 시험 기준으로는
1~4번이 데이터분석, 5~9번이 전처리&시각화, 나머지가 모델링 문제였다.
AICE Associate 시험 환경
사용 언어는 Python, 시험 환경은 Jupyter Notebook이다.
정확하게는 KT에서 Jupyter Notebook 기반으로 구현한 독자적 환경에서 시험을 치르게 된다.
시험 환경에 대해서는 몇가지 알아둬야 할 점들이 있는데,
1. 시험을 치기 위해 웹캠이 필요하다.
원격 시험이므로 시험 도중에 나의 얼굴과 컴퓨터 화면이 시험관에게 중계된다.
노트북이나 내장 캠이 있는 모니터를 사용한다면 따로 준비할 필요는 없지만,
나처럼 게이밍 사양의 데스크탑으로(...) 시험을 본다면 웹캠을 따로 사야 한다.
나는 네이버에서 제일 상단에 뜨는 웹캠을 샀는데, 25,000원 정도 했던 것 같다.
시험 치기 전에 웹캠의 정상 작동을 체크하면서, 신분증을 들고 있는 모습을 비춰야 한다.
다만 MS Azure이나 원격 NCS와는 달리 주변을 비춰 보라는 지시는 없었다.
2. 기본적으로 오픈북 테스트다.
정확히는 오픈'북'은 아니고, 대신 구글링이 가능하다.
GPT를 포함한 생성형 AI, 미리 정리해 둥 메모장 등은 쓸 수 없다.
개인적으로는 구글링을 의식하지 않고 푸는게 시간 관리가 수월했다.
검색 못 한다고 가정한 채로 문제를 풀고, 마지막 수단으로 구글링해야 시간 안에 맞출 수 있달까?
구글링이 있다고 생각하면 굳이 검색할 필요 없는 것도 검색하게 되더라.
3. Ctrl + C, Ctrl + V가 안 된다.으악
구글링이 대체로 무용한 이유.
복붙이 안되는 만큼 노가다가 필요한 컬럼 나열 등은 문제지 코드에 이미 입력되어 있다.
AICE Associate 시험 문제유형
두 번 치면서 대략 기억나는 문제 유형들을 끄적여 보자면...
분야 | 문제유형 | 비고 |
데이터분석 | 패키지 호출 | import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns |
데이터 호출 | read_csv / json / html 등 경로는 지정해 준다. |
|
데이터 확인 | df.head() / tail() / info() / describe() / shape / index / columns / value_counts() 등 문제에서 요구하는 정보를 확인하여 특정 변수('정답01' 등)에 할당해야 한다. |
|
데이터 집계 | groupby 사용 집계 결과로 볼 수 있는 정보를 변수에 할당하기도 하고, 집계 결과를 df_grp 등으로 선언하기도 한다. |
|
데이터 병합 | pd.merge() pd.concat() 처음부터 복수의 데이터를 주는 경우, merge나 concat을 시킨다. 파라미터(merge의 how, on / concat의 join, axis등)는 지정해 주기도 하지만, '이런 결과가 나오게 하세요'로 넘어가기도 한다. |
|
결측치 확인 | isna().sum() 결측치 확인의 결과를 정답 변수에 할당한다. |
|
전처리&시각화 | 결측치 처리 | fillna() 주로 특정 컬럼의 평균/최빈값으로 대체하라고 한다. |
컬럼 제거 | drop() 결과를 새로운 데이터프레임 변수로 선언시키거나, inplace=True를 사용하라고 명시해 준다. |
|
가변수화 | Label Encoding / One-Hot Encoding 라벨인코딩은 sklearn.preprocessing에서 LabelEncoder를 import해서 쓰고, 원핫인코딩은 pd.get_dummies로 하면 된다. 내가 친 시험 문제에서는, 범주형 데이터 여러 개를 label_cols와 dumm_cols 리스트로 나누고 각각 Label Encoding / One-Hot Encoding 시켰다. |
|
시각화 | plt나 sns중 뭘 쓰라고 지시해준다. 그래프로 확인가능한 요소를 정답 변수에 할당하라는 문제가 나온다. 시각화로 발견한 이상치를 처리하는 문제 등, 다른 문제와 연계된다. |
|
train-test 분할 |
sklearn.model_selection의 train_test_split을 활용한다. X는 대문자임에 주의할 것. |
|
스케일링 | sklearn.preprocessing에서 StandardScaler나 MinMaxScaler를 import하여 쓴다. 머신러닝처럼 scaler 변수에 스케일러를 함수 형식으로 할당하고 scaler.fit_transform(X_train) 하면 된다.(fit이 아니다. 주의.) |
|
모델링 |
머신러닝 | 믿음과 신뢰의 4줄 템플릿 import model = model.fit(X_train, y_train) pred_y = model.predict(X_test) 모델마다 설정해야 하는 파라미터를 제시해 준다. 단 파라미터를 아예 주진 않고, 풀어서 설명해준다. 내가 쳤을 때는 알고리즘 세 개로 모델 세 개를 만들어야 했다. |
성능평가 | 문제에서 metrics 종류를 정해 준다. 복수의 metrics 중에 가장 성능이 뛰어난/떨어지는 지표를 답안 변수에 할당한다. 복수의 모델을 만들었을 때는 하나의 metrics에서 가장 성능이 뛰어난 모델을 답해야 한다. |
|
딥러닝 설계 | tensorflow.keras 에서 Sequential을 활용한다. 그림을 주고 Dense와 Dropout으로 계층구조를 재현하라고 한다. 활성함수는 보통 relu이긴 하나, 내가 친 시험에서는 elu를 쓰게 했다. output layer에서는 Logistic, Sigmoid, Softmax 등 활성함수를 다르 선택해야 하는데, 문제에서 준다. |
|
딥러닝 학습 | 모델 compile하기 : 옵티마이저, 손실함수, metrics를 문제에서 지정한 대로 설정한다. 이후 history = model.fit() 방식으로 변수에 학습 정보 저장 EarlyStopping이나 ModelCheckpint를 import해서 요구사항대로 세팅해야 한다. batch_size나 epoch을 문제에서 준 대로 잘 입력할 것 |
|
모델 검증 | 일반적으로 history를 시각화하는 문제가 나오는 걸로 알고 있었는데, 이번에는 좀 다르게 나왔다. 시뮬레이션 데이터를 주고 학습 시 저장(ModelCheckpint 옵션)했던 모델을 불러와서 돌리는 문제가 나왔다. 풀고도 '이렇게 하는거 맞나...? 싶었던 문제. 다행히 맞긴 했다만... |
모델링은 문제가 고정적이지만 분석이나 전처리는 유형이 자주 바뀌는 것 같다.
솔직히 모델링 공부가 좀 부족했지 않나 싶은데,
전처리까지에서 시간을 많이 아낀 덕에 후반부 구글링하기가 좋았다.
문제의 자세한 내용은 시간 되는 대로 조금씩 찌끄려 봐야겠다.
합격 후기

문제 자체가 크게 어렵진 않았다. 내가 100점을 받을 정도이니...
물론 pandas, matplotlib, seaborn에 아예 무지하다면 꽤 시간을 오래 투자해야 한다.
당장 내가 그래서 첫 시험에서 반타작도 못했다.
데이터 분석을 한 학기 정도 배웠던 사람이라면, 무리 없이 합격 가능할 것이라고 생각한다.
다만 합격 기준이 80점이기에 공부할 때 기준은 만점으로 생각하는 게 효과적이다.
개인적으로는 초반 7~8문제에서 얼마나 시간을 아끼느냐가 당락을 좌우한다고 생각한다.
솔직히 모델링 하나도 모르는건 예나 지금이나 마찬가진데,
분석, 전처리 부분이 쉽게 해결되니까 뒷부분 구글링하기가 용이했다.
또 시험 특성상 이전 셀이 제대로 처리되지 않으면 아예 진행이 안되기 때문에(...)
더더욱 초반부가 중요한 시험이라고 생각한다.
다른 자격증들도 열심히 준비해서 착착 처리하는 상상을 해 본다.