Skip to main content

AutoML이란?

AutoML(Automated Machine Learning) 은 데이터를 입력하면 자동으로 전처리, 모델 선택, 하이퍼파라미터 튜닝, 평가 까지 수행하여 최적의 모델을 찾아주는 기능입니다. ML 전문 지식이 없어도 빠르게 좋은 성능의 모델을 얻을 수 있습니다.
💡 AutoML은 블랙박스가 아닙니다. Databricks AutoML의 핵심 차별점은 각 시행(trial)의 전체 코드가 담긴 노트북을 자동 생성 한다는 것입니다. 결과를 검토하고, 필요한 부분을 수정하여 직접 커스터마이즈할 수 있습니다.

지원하는 문제 유형

문제 유형API 함수평가 지표설명
분류 (Classification)automl.classify()F1, Accuracy, ROC-AUC, Log Loss이진/다중 클래스 분류
회귀 (Regression)automl.regress()RMSE, MAE, R², MSE연속 값 예측
시계열 예측 (Forecasting)automl.forecast()SMAPE, RMSE, MSE, MAE시계열 데이터 예측

UI에서 AutoML 사용하기

실행 순서

  1. 좌측 메뉴에서 Experiments 클릭
  2. Create AutoML Experiment 선택
  3. 설정 입력:
    • Dataset: Delta 테이블 또는 DataFrame 선택
    • Prediction target: 예측할 컬럼 선택
    • Problem type: 분류 / 회귀 / 시계열 예측 선택
  4. 고급 설정(선택):
    • Timeout (최대 실행 시간)
    • Evaluation metric (평가 지표)
    • Training frameworks (사용할 알고리즘)
  5. Start 클릭

UI에서 결과 확인

실행이 완료되면 다음을 확인할 수 있습니다:
확인 항목설명
리더보드모든 시행의 성능 지표를 비교합니다
최적 모델가장 좋은 성능의 모델이 하이라이트됩니다
생성된 노트북각 시행의 전체 코드를 담은 노트북 링크입니다
피처 중요도SHAP 기반 피처 중요도 그래프입니다

API에서 AutoML 사용하기

분류 (Classification)

from databricks import automl

# 분류 모델 학습
result = automl.classify(
    dataset="catalog.schema.customer_churn",  # Delta 테이블 경로
    target_col="churned",                      # 예측 대상 컬럼
    primary_metric="f1",                       # 최적화할 지표
    timeout_minutes=30,                        # 최대 실행 시간
    max_trials=50,                             # 최대 시행 수
    exclude_cols=["customer_id"],              # 제외할 컬럼
    experiment_dir="/Workspace/Users/user@company.com/automl"  # 실험 저장 경로
)

# 결과 확인
print(f"Best model: {result.best_trial.model_description}")
print(f"F1 Score: {result.best_trial.metrics['val_f1_score']:.4f}")
print(f"Accuracy: {result.best_trial.metrics['val_accuracy_score']:.4f}")
print(f"Model URI: {result.best_trial.model_uri}")

# 최적 모델의 노트북 확인
print(f"Best trial notebook: {result.best_trial.notebook_url}")

회귀 (Regression)

result = automl.regress(
    dataset="catalog.schema.house_prices",
    target_col="price",
    primary_metric="rmse",
    timeout_minutes=60,
    max_trials=100,
    exclude_cols=["id", "address"]
)

print(f"Best model: {result.best_trial.model_description}")
print(f"RMSE: {result.best_trial.metrics['val_rmse']:.2f}")
print(f"R²: {result.best_trial.metrics['val_r2_score']:.4f}")

시계열 예측 (Forecasting)

result = automl.forecast(
    dataset="catalog.schema.daily_sales",
    target_col="revenue",
    time_col="date",                    # 시간 컬럼
    identity_col=["store_id"],          # 시계열 식별 컬럼 (멀티 시계열)
    horizon=30,                         # 예측 기간 (30일)
    frequency="D",                      # 데이터 빈도 (일간)
    primary_metric="smape",
    timeout_minutes=60
)

print(f"Best model: {result.best_trial.model_description}")
print(f"SMAPE: {result.best_trial.metrics['val_smape']:.4f}")

AutoML 주요 파라미터

파라미터설명기본값
dataset학습 데이터 (테이블 경로 또는 DataFrame)입니다(필수)
target_col예측 대상 컬럼입니다(필수)
primary_metric최적화할 평가 지표입니다문제 유형에 따라 자동
timeout_minutes최대 실행 시간(분)입니다120
max_trials최대 시행(모델 학습) 수입니다None (시간 제한 내 최대)
exclude_cols학습에서 제외할 컬럼 목록입니다[]
exclude_frameworks제외할 알고리즘 프레임워크입니다[]
experiment_dirMLflow 실험 저장 경로입니다기본 디렉토리

생성된 노트북 활용

AutoML이 생성하는 노트북에는 다음 내용이 포함되어 있습니다:
섹션내용
데이터 전처리결측값 처리, 인코딩, 스케일링 코드
피처 엔지니어링날짜 분해, 상호작용 피처 등
모델 학습알고리즘 설정, 하이퍼파라미터
평가교차 검증, 지표 계산, 혼동 행렬
SHAP 분석피처 중요도 시각화

노트북 커스터마이징 워크플로

단계작업설명
1AutoML 실행자동으로 여러 모델을 학습합니다
2노트북 다운로드AutoML이 생성한 노트북을 다운로드합니다
3코드 검토 및 수정생성된 코드를 검토하고 필요에 따라 수정합니다
4추가 피처 엔지니어링도메인 지식을 반영하여 피처를 추가합니다
5하이퍼파라미터 세밀 조정모델 성능을 최적화합니다
6최종 모델 MLflow 등록최종 모델을 MLflow에 등록합니다
# AutoML 생성 노트북에서 가져온 코드를 기반으로 커스터마이징
# (실제 AutoML이 생성하는 코드의 구조 예시)

import mlflow
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from xgboost import XGBClassifier

# AutoML이 생성한 전처리 파이프라인 (수정 가능)
preprocessor = ColumnTransformer(
    transformers=[
        ("num", StandardScaler(), numerical_cols),
        ("cat", OneHotEncoder(handle_unknown="ignore"), categorical_cols),
    ]
)

# AutoML이 찾은 최적 하이퍼파라미터 (세밀 조정 가능)
model = Pipeline([
    ("preprocessor", preprocessor),
    ("classifier", XGBClassifier(
        n_estimators=200,       # AutoML 결과 기반
        max_depth=6,            # 직접 조정 가능
        learning_rate=0.1,
        min_child_weight=3,
        subsample=0.8
    ))
])

# MLflow 자동 로깅
with mlflow.start_run(run_name="customized-automl-model"):
    model.fit(X_train, y_train)
    mlflow.sklearn.log_model(model, "model",
        registered_model_name="catalog.schema.churn_model")

MLflow 자동 연동

AutoML의 모든 시행(trial)은 MLflow에 자동으로 로깅 됩니다.
자동 기록 항목설명
파라미터알고리즘, 하이퍼파라미터
지표학습/검증 성능 지표
모델 아티팩트학습된 모델 파일
피처 중요도SHAP 기반 중요도 그래프
노트북해당 시행의 전체 코드 노트북
# MLflow에서 AutoML 실험 결과 조회
import mlflow

experiment = mlflow.get_experiment_by_name("/Workspace/Users/user@company.com/automl")
runs = mlflow.search_runs(
    experiment_ids=[experiment.experiment_id],
    order_by=["metrics.val_f1_score DESC"],
    max_results=10
)

# 상위 10개 모델 비교
print(runs[["run_id", "params.model_type", "metrics.val_f1_score", "metrics.val_accuracy_score"]])

AutoML 시행에서 사용되는 알고리즘

알고리즘문제 유형특징
XGBoost분류, 회귀정형 데이터에서 최고 성능, Gradient Boosting
LightGBM분류, 회귀대용량 데이터에서 빠른 학습
sklearn (RF, LR)분류, 회귀Random Forest, Logistic/Linear Regression
Prophet시계열 예측Meta의 시계열 예측 라이브러리
ARIMA시계열 예측전통적 시계열 분석