
▪ 파이썬 기반의 오픈소스 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
▪ get_data 함수 사용
→ 필요시 Pandas DataFrame 형태로 데이터 준비
▪ setup() 함수를 사용하여 데이터와 타깃 변수를 지정하고, 필요한 전처리 옵션을 설정
✍ setup() 파라미터
▪ session_id : random_state와 같은 개념으로 같은 결과가 나올 수 있게 seed를 고정
▪ data : train 데이터를 입력
▪ target : target 변수 이름을 입력
▪ normalize : 데이터에 정규화를 할 것인지 True/False로 선택
▪ n_jobs : 사용할 CPU 코어 개수
▪ compare_models() 함수를 통해 다양한 모델의 성능을 비교
→ model()에서 제공하는 모델이나, sciki-learn에서 제공하는 모델을 별도로 선언한 후, 입력한 모델들의 성능(MAE, MSE, RMSE, R2 등)을 DataFrame 형태로 제공
✍ compare_models() 파라미터
▪ fold : cross_validation의 fold를 지정 (default = 10)
▪ sort : 정렬기준 지표 설정
▪ n_select : 상위 n개의 모델 결과만 출력
▪ include : 어떤 모델들을 비교할지 설정 (리스트 형식으로 입력)
▪ create_model()과 tune_model() 함수를 사용하여 하나의 모델 적합 결과를 보고 하이퍼파라미터를 튜닝
✍ tune_model() 파라미터
▪ n_iter : Tuning하여 성능을 비교할 후보군의 수
▪ optimize : 입력한 Mertic을 기준으로 Tuning된 모델 선별
▪ blend_models() 함수를 사용하면 여러 모델들을 혼합하여 새로운 모델을 생성
✍ blend_models() 파라미터
▪ method : 보팅 방식 지정 (soft / hard)
▪ plot_model()로 모델 성능을 시각화하고, predict_model()로 예측을 수행
→ 예측 결과는 'Label'변수에 저장
▪ save_model() 함수를 사용하여 모델을 저장