[머신러닝] AutoML : AutoGluon 주요 함수

SHIN JAE MIN·2024년 12월 4일

ML

목록 보기
4/7
post-thumbnail

📌 AutoGluon

▪ AutoGluon은 AWS에서 개발한 파이썬 기반의 AutoML 라이브러리로, 딥러닝 모델까지 자동으로 학습하고 튜닝할 수 있음

▪ 데이터 전처리, 피처 엔지니어링, 하이퍼파라미터 최적화, 앙상블 학습 등의 복잡한 작업을 자동으로 수행하며, 다양한 데이터 유형을 지원
→ 특히, 모델 성능을 최적화하기 위해 다양한 모델을 시도하고, 최적의 모델을 선택하거나 여러 모델을 결합하여 최상의 예측 성능을 제공

▪ 최신 모델까지 반영된 종합 모델 학습 API를 'Task'별로 제공하여 사용자가 간단한 코드만으로 복수의 모델을 학습할 수 있음
autogluon.tabular.TabularPredictor : Tabular Dataset에 대한 예측 API
autogluon.multimodal.MultiModalPredictor : MultiModal 예측 API
autogluon.timeseries.TimeSeriesPredictor : 시계열 데이터셋 예측 API

▪ 학습이 완료된 후 각 모델별로 train set과 test set에 대한 running time, accuracy등의 정보를 비교확인 할 수 있음

▪ AWS의 QuickSight를 연동할 경우 분석결과를 시각적으로 표현할 수 있음

▪ 학습이 중단된 경우에도 다시 학습을 재개할 수 있는 기능 제공

📖 설치

pip install autogluon

📖 사용법

1) AutoGluon 라이브러리 설치

TabularDataset
→ Tabular 데이터 (행과 열로 이루어진 표 형식의 데이터)처리하는 클래스
→ pandas DataFrame의 서브클래스이며, pandas의 모든 기능을 사용할 수 있음

TabularPredictor
→ Tabular 데이터를 기반으로 예측 모델을 생성하고, 학습시켜며, 예측을 수행하는 데 사용

from autogluon.tabular import TabularDataset, TabularPredictor

2) 데이터 준비

▪ TabularDataset()을 사용하여 Train, Test 데이터를 준비

3) 모델 학습

▪ TabularPredictor()를 사용하여 예측기를 생성하고, fit() 함수를 사용하여 데이터를 학습시킴

✍ TabularPredictor() 파라미터

label : 학습할 데이터셋에서 target column을 정의
eval_metric : loss function을 정의하며, 사용자가 직접 정의하지 않을 경우, 적절한 loss func을 내부에서 자동 설정
→ 기본값(None) : 이진 및 다중 클래스 분류의 경우 'accuracy', 회귀의 경우 'root_mean_squared_error'
time_limit : 전체 모델을 학습할때 한계 학습시간을 설정
→ 단일 모델에 대한 limit가 아니고, 전체 학습시간에 대한 limit
→ 만약 time_limit를 초과할 경우, 현재 학습된 모델에서 학습을 멈추며, 학습된 모델 중 Best model을 선택
→ 학습데이터가 클 경우, 불과 몇개 모델만 학습될 수 있으며, 이를 방지하기 위해서는 time_limit를 크게 설정하거나, 데이터셋의 크기를 줄이는 방법이 있음

✍ presets

▪ 추론 정도 설정
medium_quality(기본값):
→ 모델 품질: 다른 AutoML 프레임워크와 경쟁할 수 있는 수준의 성능
good_quality:
→ 모델 품질: 다른 AutoML 프레임워크보다 더 강력함
→ 사용 사례: 고성능, 휴대성, 매우 빠른 추론이 필요한 경우(예: 대규모 배치 추론, 실시간 추론)
high_quality:
→ 모델 품질: good_quality보다 더 나음
→ 사용 사례: 매우 강력하고, 빠른 추론이 필요한 경우(예: 대규모 배치 추론)
best_quality:
→ 모델 품질: 최첨단(State-of-the-Art) 성능, high_quality보다 훨씬 더 나음
→ 사용 사례: 정확도가 가장 중요한 경우

4) 모델 평가 및 예측

▪ evaluate()와 predict() 함수를 사용하여 모델을 평가하고 예측을 수행

5) 모델 저장 및 로드

▪ save()와 load() 함수를 사용하여 모델을 저장하고 불러옴

profile
Jam's Tech Log

0개의 댓글