본문으로 건너뛰기

015 FLAML 기초 총정리

키워드: 기초, 총정리

개요

Part 1 "시작하기" 시리즈를 마무리하며, 지금까지 배운 FLAML의 핵심 내용을 총정리합니다. 이 글을 참고하여 FLAML 기초를 빠르게 복습할 수 있습니다.

FLAML 핵심 요약

FLAML이란?

  • 이름: Fast and Lightweight AutoML
  • 개발사: Microsoft Research
  • 특징: 빠르고 가벼운 AutoML 라이브러리
  • 핵심 개념: 시간 예산(time_budget) 기반 최적화

설치

# 015 기본 설치
pip install flaml

# 015 AutoML 기능 포함 (권장)
pip install flaml[automl]

# 015 시계열 포함
pip install flaml[automl,ts_forecast]

기본 사용법

from flaml import AutoML

# 1. AutoML 객체 생성
automl = AutoML()

# 2. 학습
automl.fit(
X_train, y_train,
task="classification", # 또는 "regression"
time_budget=60,
metric="accuracy"
)

# 3. 예측
predictions = automl.predict(X_test)

핵심 파라미터 정리

fit() 필수 파라미터

파라미터설명예시
X_train학습 특성 데이터DataFrame, array
y_train학습 타겟 데이터Series, array
task태스크 유형"classification", "regression"
time_budget시간 예산 (초)60, 120, 300

fit() 주요 선택 파라미터

파라미터기본값설명
metrictask별 기본값최적화 지표
estimator_list전체탐색할 모델 목록
n_splits5교차 검증 폴드 수
seedNone재현성을 위한 시드
verbose1로그 출력 레벨
log_file_nameNone로그 파일 경로

분류 metric 옵션

metric설명사용 상황
"accuracy"정확도균형 데이터
"roc_auc"ROC AUC불균형 데이터
"f1"F1 점수불균형 데이터
"log_loss"로그 손실확률 예측

회귀 metric 옵션

metric설명특징
"r2"R² 점수설명력 측정
"mse"평균 제곱 오차큰 오차에 민감
"mae"평균 절대 오차이상치에 강건

사용 가능한 추정기

추정기설명
"lgbm"LightGBM (기본 선택)
"xgboost"XGBoost
"rf"Random Forest
"extra_tree"Extra Trees
"catboost"CatBoost
"lrl1", "lrl2"로지스틱 회귀

결과 확인 속성

# 015 학습 후 결과 확인
automl.best_estimator # 최적 모델 이름 (str)
automl.best_model # 학습된 모델 객체
automl.best_config # 최적 하이퍼파라미터 (dict)
automl.best_loss # 최적 검증 손실 (float)
automl.best_config_train_time # 학습 소요 시간 (float)

워크플로우 체크리스트

학습 전

  • 데이터 로드 및 확인
  • 결측치 확인/처리
  • 특성(X)과 타겟(y) 분리
  • 학습/테스트 데이터 분할
  • task 유형 결정 (classification/regression)
  • time_budget 설정
  • metric 선택

학습

from flaml import AutoML
from sklearn.model_selection import train_test_split

# 015 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)

# 015 FLAML 학습
automl = AutoML()
automl.fit(
X_train, y_train,
task="classification",
time_budget=60,
metric="accuracy",
seed=42
)

학습 후

  • best_estimator 확인
  • best_config 확인
  • 테스트 세트로 평가
  • 결과 시각화
  • 모델 저장
# 015 평가
from sklearn.metrics import accuracy_score

y_pred = automl.predict(X_test)
print(f"정확도: {accuracy_score(y_test, y_pred):.4f}")

# 015 저장
import pickle
with open('model.pkl', 'wb') as f:
pickle.dump(automl, f)

time_budget 가이드

상황권장 시간
빠른 테스트10~30초
탐색적 분석30~60초
일반 학습60~300초
프로덕션300초 이상

코드 템플릿

분류 템플릿

from flaml import AutoML
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report
import pickle

# 015 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)

# 015 학습
automl = AutoML()
automl.fit(
X_train, y_train,
task="classification",
time_budget=60,
metric="accuracy",
seed=42
)

# 015 평가
y_pred = automl.predict(X_test)
print(f"최적 모델: {automl.best_estimator}")
print(f"정확도: {accuracy_score(y_test, y_pred):.4f}")
print(classification_report(y_test, y_pred))

# 015 저장
with open('classifier.pkl', 'wb') as f:
pickle.dump(automl, f)

회귀 템플릿

from flaml import AutoML
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score, mean_squared_error
import numpy as np
import pickle

# 015 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)

# 015 학습
automl = AutoML()
automl.fit(
X_train, y_train,
task="regression",
time_budget=60,
metric="r2",
seed=42
)

# 015 평가
y_pred = automl.predict(X_test)
print(f"최적 모델: {automl.best_estimator}")
print(f"R²: {r2_score(y_test, y_pred):.4f}")
print(f"RMSE: {np.sqrt(mean_squared_error(y_test, y_pred)):.2f}")

# 015 저장
with open('regressor.pkl', 'wb') as f:
pickle.dump(automl, f)

자주 묻는 질문

Q1: FLAML은 어떤 모델을 탐색하나요?

기본적으로 LightGBM, XGBoost, Random Forest, Extra Trees 등을 탐색합니다. estimator_list로 제한할 수 있습니다.

Q2: time_budget을 얼마로 설정해야 하나요?

데이터 크기와 목적에 따라 다릅니다. 일반적으로 60~300초를 권장합니다.

Q3: Colab에서 사용할 수 있나요?

네, !pip install flaml[automl]로 설치 후 바로 사용 가능합니다.

Q4: 모델을 저장하려면?

pickle 또는 joblib으로 AutoML 객체 전체를 저장합니다.

Q5: 커스텀 모델을 추가할 수 있나요?

automl.add_learner()로 sklearn 호환 모델을 추가할 수 있습니다.

Part 1 학습 내용 목록

번호제목핵심 내용
001FLAML이란?AutoML 개념, FLAML 특징
002설치와 환경 구축pip 설치, 가상환경
003Google Colab 시작Colab 설정, 실습
004다른 도구 비교PyCaret, Auto-sklearn 비교
005데이터 로딩CSV, Excel, SQL
006기본 워크플로우전체 과정 이해
007fit() 파라미터핵심 파라미터 상세
008time_budget시간 예산 개념
009metric평가 지표 선택
010estimator_list모델 선택
011첫 번째 분류 모델실전 분류 프로젝트
012첫 번째 회귀 모델실전 회귀 프로젝트
013best_estimator결과 확인 방법
014로그 분석학습 과정 분석
015기초 총정리Part 1 복습

다음 단계 안내

Part 2 "분류"에서는 다음 내용을 다룹니다:

  • 분류 문제의 이해
  • 다양한 분류 프로젝트 (타이타닉, 고객 이탈 등)
  • 평가 지표 심화 (혼동 행렬, ROC, F1)
  • 불균형 데이터 처리
  • 특성 중요도와 모델 해석

정리

  • FLAML은 빠르고 가벼운 AutoML 라이브러리입니다.
  • time_budget으로 학습 시간을 제어합니다.
  • fit() → predict() 두 단계로 간단히 사용합니다.
  • best_estimator, best_config로 결과를 확인합니다.
  • pickle로 모델을 저장하고 재사용합니다.

다음 글 예고

다음 글에서는 분류 문제의 이해에 대해 알아보겠습니다. Part 2 "분류" 시리즈를 시작하며, 분류 문제의 종류와 특성을 다룹니다.


FLAML AutoML 마스터 시리즈 #015

Part 1 "시작하기" 완료!