PyCaret Installation on M1 Mac

Page content

PyCaret Installation on M1 Mac

개요

  • M1 Mac에서 PyCaret을 설치하고 싶었다.
  • PyCaretAutoML 라이브러리이며, 단 몇줄의 코드로 복잡한 기계학습을 학습 및 비교할 수 있도록 구현한 코드라고 볼 수 있다.
  • M1 Mac에서 해당 라이브러리를 사용하려면 크게 2가지 필수 전제 조건이 있다.
    • LightGBM, XGboost 설치

1. PyCaret 설치 방법

  • 일반 인텔 기반의 Mac의 설치는 매우 쉽다. (Intel Mac)
$ brew install lightgbm
  • 그러나, M1 Mac에서는 생각보다 쉽지 않다.
    • 물론, Rosetta로 터미널을 바꾸면 Intel Mac 처럼 쓸 수 있다. 그러나, M1의 GPU를 활용하려면 기존 설치 방법으로는 적용이 어렵다.

(1) Step 01. Xcode Command Line Tools

(2) Step 02. miniforge 설치

  • 본 블로그에서 가장 중요하다.
  • 2021년 12월 기준 시점에서는 반드시 설치를 해야 한다.
    • GPU를 사용하기 위해서는 LightGBM, XGBoost, PyCaret은 Conda 기반으로만 설치가 가능하다.
  • 설치 파일 주소: https://github.com/conda-forge/miniforge
    • 설치 시, 아래 그림과 같이 arm64 Apple Silicon을 선택해서 다운로드 받아야 한다.

install_01.png

(3) Step 03. Homebrew 설치

  • 이번에는 Mac Package 관리자인 Homebrew를 설치한다.
    • 설치 관련 주소: https://brew.sh/
    • 2021년 12월 기준 설치 코드는 아래와 같다.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

(4) Step 04. XGBoost 설치 관련 라이브러리 설치

  • XGBoost 설치하기 위해서는 두개의 기본 라이브러리가 추가로 필요하다.
  • 이 때, brew를 통해서 설치를 한다.
$ brew install cmake libomp

(5) Step 05. Create Conda Environment

  • 이 때, 중요한 것은 터미널 새로운 세션을 열거나 또는 아래처럼 source 명령어를 통해 갱신한다.
$ source ~/.zshrc # or
$ source ~/.bash_profile 
  • 이제 아래 코드를 통해 가상환경 및 파이썬을 설정한다.
$ conda create -n your_env
$ conda activate your_env
$ conda install python=3.8.8

(6) Step 06. Pycaret Installation

  • Pycaret을 설치하기 위해서는 한꺼번에 모든것을 설치하면 안된다.
  • 우선 Pycaret을 설치하기 위해 먼저 아래 코드를 실행한다.
$ pip install --no-dependencies pycaret
  • 그 후, requirements 파일에서 필요한 목록을 작성한다.
    • 참조: https://github.com/pycaret/pycaret/blob/master/requirements.txt
    • Pycaret 설치 시, 중요한 것은 scikit-learn 버전은 현재 1.0대 버전인데, 여기에서는 0.23.2 버전으로 맞춰야 한다는 것이다. (2022년에는 버전이 업그레이드 될 것으로 예상하기 때문에, 추후 독자분들은 확인을 꼭 하시기를 바란다.)
pandas
scipy
numpy
seaborn
matplotlib
IPython
joblib
scikit-learn==0.23.2
ipywidgets
yellowbrick>=1.0.1
lightgbm>=2.3.1
plotly>=4.4.1
wordcloud
textblob
cufflinks>=0.17.0
umap-learn
pyLDAvis
gensim
spacy
nltk
mlxtend>=0.17.0
pyod
pandas-profiling>=2.8.0
kmodes>=0.10.1
mlflow
imbalanced-learn
scikit-plot #for lift and gain charts
Boruta
numba
  • 우선 위 라이브러리부터 설치를 진행한다.
  • 먼저 파일을 작성한다. 필자는 터미널에서 vi 를 통해 직접 수정했다.
    • 위 내용을 복사 붙인 후 insert-mode 에서 ESC 누른 후 :wq 저장한다.
$ vi requirements.txt 
$ cat requirements.txt | xargs -n 1 conda install
  • 이번에는 XGBoost를 설치한다.
$ pip install xgboost --no-binary xgboost -v
  • 이번에는 LightGBM 을 설치한다.
$ conda install lightgbm

2. PyCaret 테스트

from pycaret.datasets import get_data
from pycaret.regression import *

def main():
    data = get_data('diamond')
    s = setup(data, target='Price',
              transform_target=True,
              log_experiment=True,
              experiment_name='diamond',
              silent=True)
    best = compare_models()
    plot_model(best, plot='feature')
    # finalize the model
    final_best = finalize_model(best)
    # save model to disk
    save_model(final_best, 'diamond-pipeline')

if __name__ == "__main__":
    main()
  • Console 창에서 아래와 같이 확인되면 정상적으로 세팅이 완료된 것으로 볼 수 있다.

install_02.png

  • PyCaret의 가장 큰 장점은 MLOps 툴 중의 하나인 MLFlow를 매우 쉽게 사용할 수 있다는 점이다. 이 부분은 다음 코드를 실행해서 확인한다.
$ mlflow ui

install_03.png