AutoML(Automated Machine Learning)은 데이터 전처리, 특성 공학, 모델 선택, 하이퍼파라미터 최적화, 앙상블 등 머신러닝 파이프라인 전 과정을 자동화하는 기술이다. 전문 지식 없이도 고성능 모델을 구축할 수 있게 한다.
AutoML 파이프라인
데이터
│
├── 자동 전처리 (결측치, 인코딩, 스케일링)
│
├── 자동 특성 공학 (선택, 생성)
│
├── 모델 선택 (알고리즘 탐색)
│
├── 하이퍼파라미터 최적화 (HPO)
│
└── 앙상블 구성
하이퍼파라미터 최적화 기법
python
# 1. 그리드 탐색
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [None, 5, 10],
'min_samples_split': [2, 5, 10]
}
grid = GridSearchCV(RandomForestClassifier(), param_grid, cv=5, n_jobs=-1)
# 2. 베이지안 최적화 (Optuna)
import optuna
def objective(trial):
n_est = trial.suggest_int('n_estimators', 50, 300)
max_d = trial.suggest_int('max_depth', 2, 20)
lr = trial.suggest_float('learning_rate', 1e-4, 1e-1, log=True)
# ... 모델 학습 및 평가
return accuracy # 최대화할 지표
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=100)
print("최적 파라미터:", study.best_params)
# 3. Auto-Sklearn 사용 예
# import autosklearn.classification
# automl = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=120)
# automl.fit(X_train, y_train)
주요 AutoML 프레임워크
| 도구 | 기반 | 특징 |
|---|
| Auto-Sklearn | sklearn | 앙상블 + 베이지안 |
| AutoKeras | Keras/TF | 딥러닝 특화 |
| H2O AutoML | H2O.ai | 기업용, 다양한 알고리즘 |
| TPOT | 유전 알고리즘 | 파이프라인 진화 |
| Google Vertex AI | Google Cloud | 완전 관리형 |
| Optuna | 프레임워크 독립 | HPO 전문 |
NAS vs AutoML
| 항목 | NAS | AutoML |
|---|
| 대상 | 신경망 구조 | 전체 ML 파이프라인 |
| 비용 | 높음 | 중간 |
| 전문성 | 딥러닝 | 일반 ML |
| 출력 | 모델 구조 | 파이프라인 |
관련 개념