Skip to main content
Auto-sklearn은 scikit-learn 생태계 위에 구축된 AutoML 도구로, 메타 학습(Meta-learning)을 활용하여 유사한 데이터셋에서 잘 작동했던 알고리즘을 우선 탐색합니다.

학습 목표

  • Auto-sklearn을 설치하고 기본 분류/회귀 작업에 사용할 수 있습니다.
  • 시간 및 메모리 제약을 설정할 수 있습니다.
  • 메타 학습과 앙상블 구성의 원리를 이해합니다.

Auto-sklearn 실습

1
설치 및 기본 사용
2
pip install auto-sklearn
3
import autosklearn.classification
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# AutoML 분류기 생성 (5분 제한)
automl = autosklearn.classification.AutoSklearnClassifier(
    time_left_for_this_task=300,  # 전체 시간 (초)
    per_run_time_limit=30,        # 개별 모델당 시간 (초)
    n_jobs=-1,
    seed=42,
)

# 학습 (내부적으로 여러 알고리즘과 파라미터를 자동 탐색)
automl.fit(X_train, y_train)

# 예측 및 평가
y_pred = automl.predict(X_test)
print(f"정확도: {accuracy_score(y_test, y_pred):.4f}")

# 선택된 모델 확인
print(automl.leaderboard())

# 최종 앙상블 구성 확인
print(automl.show_models())
4
회귀 작업
5
import autosklearn.regression
from sklearn.datasets import fetch_california_housing

X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

automl_reg = autosklearn.regression.AutoSklearnRegressor(
    time_left_for_this_task=300,
    per_run_time_limit=30,
    metric=autosklearn.metrics.r2,
    seed=42,
)

automl_reg.fit(X_train, y_train)
print(f"R² 점수: {automl_reg.score(X_test, y_test):.4f}")
6
고급 설정
7
automl = autosklearn.classification.AutoSklearnClassifier(
    time_left_for_this_task=600,
    per_run_time_limit=60,
    memory_limit=4096,          # 메모리 제한 (MB)
    ensemble_size=10,           # 앙상블 크기
    ensemble_nbest=15,          # 앙상블 후보 수
    initial_configurations_via_metalearning=25,  # 메타 학습 초기 설정 수
)
scikit-learn에 포함된 대부분의 분류/회귀 알고리즘을 탐색합니다. 랜덤 포레스트, AdaBoost, SVM, KNN, 그래디언트 부스팅 등 15개 이상의 알고리즘과 다양한 전처리 방법의 조합을 시도합니다.
수백 개의 공개 데이터셋에서 사전에 학습된 정보를 활용하여, 새 데이터셋에서 유망한 알고리즘/파라미터 조합을 우선 탐색하는 기법입니다. 이를 통해 무작위 탐색보다 훨씬 빠르게 좋은 모델을 찾습니다.

체크리스트

  • Auto-sklearn으로 분류/회귀 작업을 수행할 수 있다
  • 시간 및 메모리 제약을 설정할 수 있다
  • 메타 학습의 역할을 설명할 수 있다

다음 문서

AutoGluon

스택 앙상블 기반 AutoML을 학습합니다.

FLAML

경량 AutoML 도구를 학습합니다.

언제 쓰나

현재 문제의 목표 지표와 데이터 특성을 먼저 확인한 뒤 적용합니다. 작은 실험셋으로 빠르게 기준 성능을 확인한 뒤, 필요하면 더 복잡한 모델로 확장합니다.

실무 적용 체크리스트

  • 데이터 누수 가능성을 먼저 점검했습니다.
  • 학습/검증/테스트 분할 기준을 고정했습니다.
  • 핵심 지표(예: F1, RMSE, AUC)를 명시했습니다.
  • 베이스라인 대비 개선폭과 비용 변화를 함께 기록했습니다.

자주 나는 실수

  1. 데이터 분할 전에 전처리를 수행해 데이터 누수가 발생합니다.
  2. 단일 지표만 보고 모델을 선택해 운영 성능이 불안정해집니다.
  3. 하이퍼파라미터를 과도하게 조정해 검증셋 과적합이 생깁니다.