Auto-sklearn
Auto-sklearn은 scikit-learn 생태계 위에 구축된 AutoML 도구로, 메타 학습(Meta-learning)을 활용하여 유사한 데이터셋에서 잘 작동했던 알고리즘을 우선 탐색합니다.학습 목표
- Auto-sklearn을 설치하고 기본 분류/회귀 작업에 사용할 수 있습니다.
- 시간 및 메모리 제약을 설정할 수 있습니다.
- 메타 학습과 앙상블 구성의 원리를 이해합니다.
Auto-sklearn 실습
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())
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}")
Q: Auto-sklearn은 어떤 알고리즘을 탐색하나요?
Q: Auto-sklearn은 어떤 알고리즘을 탐색하나요?
scikit-learn에 포함된 대부분의 분류/회귀 알고리즘을 탐색합니다. 랜덤 포레스트, AdaBoost, SVM, KNN, 그래디언트 부스팅 등 15개 이상의 알고리즘과 다양한 전처리 방법의 조합을 시도합니다.
Q: Auto-sklearn의 메타 학습이란 무엇인가요?
Q: Auto-sklearn의 메타 학습이란 무엇인가요?
수백 개의 공개 데이터셋에서 사전에 학습된 정보를 활용하여, 새 데이터셋에서 유망한 알고리즘/파라미터 조합을 우선 탐색하는 기법입니다. 이를 통해 무작위 탐색보다 훨씬 빠르게 좋은 모델을 찾습니다.
체크리스트
- Auto-sklearn으로 분류/회귀 작업을 수행할 수 있다
- 시간 및 메모리 제약을 설정할 수 있다
- 메타 학습의 역할을 설명할 수 있다

