AICE Professional 1번 문제 완전 정복 — Tabular 회귀

들어가며: 실전 경험에서 나온 공략법

AICE Professional 시험에 직접 도전해 보았습니다. 결과적으로 1, 2번은 만점을 받았지만, 3번(Image) 문제에서 막혀 아쉽게 불합격했습니다. 그 경험을 바탕으로, 시험에서 나올 가능성이 높은 예상 문제와 접근 방법을 정리해 보겠습니다.

같은 시험을 준비하시는 분들에게 실질적인 도움이 되길 바랍니다.


AICE Professional 시험 구조부터 파악하자

시험은 총 3문제로 구성되어 있으며, 각 문제의 배점은 다음과 같습니다.

문제유형배점
1번Tabular (정형 데이터)30점
2번Text (텍스트 데이터)35점
3번Image (이미지 데이터)35점

합격 기준은 80점 이상입니다. 100점 만점에 80점이니 여유가 있어 보이지만, 실제로는 한 문제라도 완전히 틀리면 사실상 불합격입니다. 부분 점수가 있긴 하지만, 거의 다 맞아야 의미 있는 점수가 나옵니다. 풀다가 중간에 포기하거나 답이 아예 틀리면 0점 처리되기 때문에, 세 문제 모두 확실하게 마무리하는 전략이 필요합니다.


1번 문제: Tabular 회귀 — 출제 유형 분석

예상 문제 형태

약 10개 내외의 수치형 변수(각종 검사 수치, 지표 등)가 주어지고, 이를 기반으로 1년 후 발병 수치를 예측하는 전형적인 회귀(Regression) 문제가 출제됩니다.

핵심 포인트는 다음과 같습니다.

  • 범주형 변수 없이 수치 데이터만 제공됩니다
  • 복잡한 전처리가 필요 없는 깔끔한 데이터셋입니다
  • 평가 기준은 RMSE 83 이하를 달성해야 합니다

즉, 전처리에 시간을 쓸 필요 없이 모델 선택과 하이퍼파라미터 조정에 집중하면 되는 문제입니다.


풀이 전략: 5단계 접근법

Step 1. 데이터 로드 및 기본 확인

python

import pandas as pd
import numpy as np
from pathlib import Path

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import joblib

# 경로 설정
DATA_DIR = Path('.')
TRAIN_CSV = DATA_DIR / '01_train.csv'
TEST_CSV  = DATA_DIR / '01_test_x.csv'

# 제출 파일 이름 설정 (본인 전화번호로 변경)
PHONE = '01012345678'
OUT_CSV = DATA_DIR / f'{PHONE}_1.csv'
OUT_PKL = DATA_DIR / f'{PHONE}_1.pkl'

TARGET_COL = 'target'

# 데이터 로드
train = pd.read_csv(TRAIN_CSV)
test  = pd.read_csv(TEST_CSV)

실전에서는 파일명이 다를 수 있으니, 문제에서 제시하는 파일명을 정확히 확인하세요.

Step 2. 전처리 — 최소한으로 충분합니다

이 문제의 데이터는 깔끔한 수치형이라 복잡한 전처리가 필요 없습니다. 다만 혹시 모를 결측치에 대비해 평균값 대치 정도만 해 두면 안전합니다.

python

# X, y 분리
y = train[TARGET_COL].values
X = train.drop(columns=[TARGET_COL])

# 결측치 안전장치 (있으면 평균 대치)
if X.isnull().any().any():
    X = X.fillna(X.mean())
if test.isnull().any().any():
    test = test.fillna(test.mean())

팁: 시험 시간은 한정되어 있습니다. EDA(탐색적 데이터 분석)에 시간을 과하게 쓰기보다, 빠르게 모델을 돌려보고 결과를 확인하는 쪽이 효율적입니다.

Step 3. 검증 데이터 분리 — 반드시 확인하고 넘어가세요

python

X_tr, X_va, y_tr, y_va = train_test_split(
    X, y, test_size=0.2, random_state=42
)

검증 데이터를 분리하는 이유는 단순합니다. 제출 전에 RMSE가 83 미만인지 확인해야 하기 때문입니다. 이 확인 없이 바로 제출하면, 기준을 넘겼는지 알 수 없어 불안한 채로 시험을 마치게 됩니다.

Step 4. 모델 학습 및 검증 — RandomForest면 충분합니다

python

rf = RandomForestRegressor(
    n_estimators=600,
    max_depth=None,
    min_samples_leaf=2,
    n_jobs=-1,
    random_state=42
)

# 학습 및 검증
rf.fit(X_tr, y_tr)
va_pred = rf.predict(X_va)
rmse_va = mean_squared_error(y_va, va_pred, squared=False)
print(f'Validation RMSE: {rmse_va:.4f}')

RandomForestRegressor를 선택한 이유는 명확합니다.

  • 전처리가 거의 필요 없습니다 (스케일링 불필요)
  • 과적합에 비교적 강합니다
  • 하이퍼파라미터 기본값만으로도 준수한 성능을 냅니다
  • XGBoost보다 설정이 간단해서 시험 환경에서 실수할 여지가 적습니다

RMSE가 83을 넘긴다면? 간단 튜닝 가이드

파라미터시도 순서설명
n_estimators300 → 600 → 1000트리 수를 늘려 안정성 향상
min_samples_leaf1 → 2 → 4노이즈 완화, 과적합 방지
max_depthNone → 20 → 12트리 깊이 제한으로 일반화
max_features1.0 → 0.7 → 0.5각 트리가 사용하는 변수 비율 축소

시간 여유가 있다면 RandomizedSearchCV로 30~50회 정도 탐색해도 좋지만, 대부분의 경우 위 조합을 2~3개만 수동으로 바꿔 보면 기준을 통과합니다.

Step 5. 최종 제출 파일 생성

검증에서 기준을 통과했다면, 전체 학습 데이터로 다시 학습한 뒤 예측합니다.

python

# 전체 데이터로 최종 학습
rf.fit(X, y)

# 테스트 예측
test_pred = rf.predict(test)

# CSV 저장 (문제에서 요구하는 포맷에 맞춰 조정)
test['pred'] = test_pred
test.to_csv(OUT_CSV, index=False)
print(f'Wrote: {OUT_CSV}')

# 모델 저장 (pkl)
joblib.dump(rf, OUT_PKL)
print(f'Wrote: {OUT_PKL}')

주의: 제출 파일의 컬럼명과 포맷은 문제마다 다를 수 있습니다. 문제 지시사항을 꼼꼼히 읽고 맞추세요. 파일명도 전화번호_문제번호 형식이 일반적이지만, 시험 당일 안내를 반드시 따라야 합니다.


실전 체크리스트

시험장에서 코드를 실행하기 전, 이 순서대로 확인하세요.

  1. 데이터 파일명과 경로가 정확한가?
  2. target 컬럼명이 맞는가?
  3. 검증 RMSE가 83 미만인가?
  4. 최종 학습은 전체 데이터로 했는가?
  5. 제출 CSV 포맷(컬럼명, 순서)이 문제 요구사항과 일치하는가?
  6. pkl 파일이 정상적으로 저장되었는가?

마무리

1번 Tabular 문제는 AICE Professional 세 문제 중 가장 접근하기 쉬운 문제입니다. RandomForest 하나로 충분히 만점을 받을 수 있고, 전처리에 시간을 낭비하지 않는 것이 핵심입니다.

다만, 쉽다고 방심하면 안 됩니다. 파일명 오류, 제출 포맷 실수 같은 사소한 부분에서 0점을 받을 수 있습니다. 코드보다 제출 과정을 더 꼼꼼히 챙기세요.

다음 글에서는 2번 Text 문제 풀이를 다루겠습니다.

관련 글 보기

  • AICE Professional 3번 문제 완전 정복 — Image 다중 분류

    AICE Professional 시험 3번 Image 다중 분류 문제 풀이법을 실전 경험을 바탕으로 정리했습니다. MobileNetV2 전이학습과 2단계 파인튜닝으로 접근하는 8단계 풀이 전략, 이진 분류와 다중 분류의 핵심 차이점, 제출 시 주의사항까지 코드와 체크리스트로 한 번에 확인하세요.

  • AICE Professional 2번 문제 완전 정복 — Text 다중 분류

    AICE Professional 시험 2번 Text 다중 분류 문제 풀이법을 실전 만점 경험을 바탕으로 정리했습니다. 텍스트 전처리, Tokenizer 사용법, Embedding + BiLSTM 모델 구성, 시퀀스 패딩까지 8단계 접근법을 코드와 함께 상세히 설명합니다. 튜닝 가이드와 실전 체크리스트도 포함되어 있습니다.

  • AICE Professional 1번 문제 완전 정복 — Tabular 다중 분류

    AICE Professional 시험 1번 Tabular 다중 분류 문제 풀이법을 실전 경험을 바탕으로 정리했습니다. RandomForestClassifier와 LabelEncoder를 활용한 6단계 접근법, 회귀와 분류의 핵심 차이점, 클래스 불균형 대응 튜닝 가이드까지 코드와 체크리스트로 한 번에 확인하세요.

  • AICE Professional 2번 문제 완전 정복 — Text 이진 분류

    AICE Professional 시험 2번 Text 이진 분류 문제 풀이법을 실전 만점 경험을 바탕으로 정리했습니다. 다중 분류 코드에서 출력층, 손실 함수, 예측 후처리 네 군데만 변경하면 됩니다. sigmoid 출력 처리, 임계값 설정, ravel() 주의사항까지 코드와 체크리스트로 확인하세요.