Skip to main content

Auto-sklearn

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으로 분류/회귀 작업을 수행할 수 있다
  • 시간 및 메모리 제약을 설정할 수 있다
  • 메타 학습의 역할을 설명할 수 있다

다음 문서