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

SHIN JAE MIN·2024년 12월 4일

ML

목록 보기
3/7
post-thumbnail

📌 PyCaret

▪ 파이썬 기반의 오픈소스 AutoML 라이브러리로, 간단한 코드로 머신러닝 워크플로우를 자동화할 수 있음

▪ PyCaret은 scikit-learn, XGBoost, LightGBM, CatBoost, Optuna 등 다양한 머신러닝 라이브러리와 프레임워크를 감싸는 Python wrapper

▪ 각기 다른 머신러닝 도구들을 개별적으로 설치하고 사용하기 위해 복잡한 코드를 짜는 대신, PyCaret를 사용하면 단순한 코드 몇 줄만으로도 여러 도구의 기능을 활용할 수 있음

▪ Classification, Regression, Clustering, Anomaly Detection 등 Task의 모델 지원

→ pycaret은 크게 setup(전처리) - compares_model - (tune) - blend - final - predict 순으로 수행

▪ pycaret을 활용하기 위해서는 python 3.8 이하 버전을 사용해야 함
→ 이미 3.9가 설치된 경우, 가상환경에서 python을 3.8.x 버전으로 새로 설치해서 하는것을 권장

📖 설치

pip install pycaret

📖 사용법

1) 데이터 준비

▪ get_data 함수 사용
→ 필요시 Pandas DataFrame 형태로 데이터 준비

2) 설정 초기화

▪ setup() 함수를 사용하여 데이터와 타깃 변수를 지정하고, 필요한 전처리 옵션을 설정

✍ setup() 파라미터

session_id : random_state와 같은 개념으로 같은 결과가 나올 수 있게 seed를 고정
data : train 데이터를 입력
target : target 변수 이름을 입력
normalize : 데이터에 정규화를 할 것인지 True/False로 선택
n_jobs : 사용할 CPU 코어 개수

3) 모델 비교

▪ compare_models() 함수를 통해 다양한 모델의 성능을 비교
→ model()에서 제공하는 모델이나, sciki-learn에서 제공하는 모델을 별도로 선언한 후, 입력한 모델들의 성능(MAE, MSE, RMSE, R2 등)을 DataFrame 형태로 제공

✍ compare_models() 파라미터

fold : cross_validation의 fold를 지정 (default = 10)
sort : 정렬기준 지표 설정
n_select : 상위 n개의 모델 결과만 출력
include : 어떤 모델들을 비교할지 설정 (리스트 형식으로 입력)

4) 모델 생성 및 튜닝

▪ create_model()과 tune_model() 함수를 사용하여 하나의 모델 적합 결과를 보고 하이퍼파라미터를 튜닝

✍ tune_model() 파라미터

n_iter : Tuning하여 성능을 비교할 후보군의 수
optimize : 입력한 Mertic을 기준으로 Tuning된 모델 선별

5) 모델 혼합

▪ blend_models() 함수를 사용하면 여러 모델들을 혼합하여 새로운 모델을 생성

✍ blend_models() 파라미터

method : 보팅 방식 지정 (soft / hard)

6) 모델 평가 및 예측

▪ plot_model()로 모델 성능을 시각화하고, predict_model()로 예측을 수행
→ 예측 결과는 'Label'변수에 저장

7) 모델 저장

▪ save_model() 함수를 사용하여 모델을 저장

profile
Jam's Tech Log

0개의 댓글