Juni_DEV

AutoGluon 사용법 본문

Artificial Intelligence/Kaggle

AutoGluon 사용법

junni :p 2024. 8. 25. 18:34
반응형

AutoGluon은 Amazon Web Services(AWS)에서 개발한 오픈 소스 자동화 머신러닝(AutoML) 라이브러리입니다.
이번에 Kaggle Playground 대회를 준비하며 처음 접하게 되었는데, 이 라이브러리를 통해 적은 노력으로 강력한 머신러닝 모델을 구축할 수 있었고, 알아서 제공된 데이터에 대해 자동화된 최적 모델을 제공해줘서 정말 유용했습니다. 이번 글에서는 AutoGluon을 사용하는 방법을 알아보겠습니다.


1. AutoGluon 설치하기

pip install autogluon

 

2.  데이터 준비하기

AutoGluon은 다양한 데이터 형식을 지원하지만, 일반적으로 CSV 파일을 사용해 데이터를 로드합니다.

import pandas as pd

# 데이터 로드
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')

# 레이블 컬럼 이름 정의
label_column = 'class'

'train_data'는 학습에 사용할 데이터, 'test_data'는 예측을 수행할 데이터가 담긴 데이터프레임입니다.
'label_column'은 예측하고자 하는 타깃 레이블을 정의합니다.


3. AutoGluon을 사용한 모델 학습하기

AutoGluon의 핵심 클래스는 'TabularPredictor'입니다. 이 클래스를 사용해 간단히 모델을 학습할 수 있습니다.

from autogluon.tabular import TabularPredictor

# 예측기 생성 및 학습
predictor = TabularPredictor(label=label_column).fit(train_data)

위 코드에서는 'fit' 메서드를 통해 AutoGluon이 자동으로 최적의 모델을 탐색하고 학습시킵니다. AutoGluon은 내부적으로 다양한 알고리즘(예: LightGBM, CatBoost, XGBoost, Neural Network 등)을 테스트하고, 최적의 성능을 내는 모델을 선택합니다.

4. 모델 성능 평가하기

모델 학습이 완료되면, 'predictor' 객체를 사용해 테스트 데이터에 대한 예측을 수행하고, 모델의 성능을 평가할 수 있습니다.

# 예측 수행
predictions = predictor.predict(test_data)

# 모델 성능 평가
performance = predictor.evaluate(test_data)
print(performance)

'evaluate' 메서드는 정확도, F1-score, AUC 등 다양한 성능 지표를 출력합니다.

5. 모델 튜닝 및 추가 기능

AutoGluon은 자동으로 최적의 모델을 찾아주지만, 추가적인 설정을 통해 모델 성능을 더욱 향상할 수 있습니다.
예를 들어 학습 시간(time_limit), 원하는 목표(presets)나 제외할 모델, 자원의 양등을 다양하게 조절할 수 있습니다.

predictor = TabularPredictor(label=label_column,
                            eval_metric='mcc',
                            problem_type='binary').fit(train_data,
                                                       presets='best_quality',
                                                       time_limit=3600*10,
                                                       verbosity=3,
                                                       excluded_model_types=['KNN'],
                                                       ag_args_fit={'num_gpus': 2}
                                                      )
results = predictor.fit_summary()

이 외에도 AutoGluon은 앙상블 레벨, 하이퍼파라미터 최적화, 피쳐 엔지니어링 등 다양한 기능을 제공합니다. 
아래 AutoGluon 웹사이트를 참고해서 데이터에 맞춰 코드를 조정했습니다.

 

AutoGluon Predictors — AutoGluon Documentation 0.6.0 documentation

 

auto.gluon.ai

 

6. 예측 결과 저장하기

학습한 모델로 생성된 예측 결과는 CSV 파일로 저장할 수 있습니다.

# 예측 결과 저장
predictions.to_csv('predictions.csv', index=False)

 


AutoGluon을 이용해서 큰 노력 없이 다양한 모델과, 다양한 앙상블 레벨을 테스트하고 가장 좋은 결과, 또는 원하는 목표에 맞춘 결괏값을 얻을 수 있다는 점이 가장 매력적이라고 느꼈습니다.

반응형
Comments