PyCaret Installation on M1 Mac
Page content
PyCaret Installation on M1 Mac
개요
- M1 Mac에서
PyCaret
을 설치하고 싶었다. PyCaret
은AutoML
라이브러리이며, 단 몇줄의 코드로 복잡한 기계학습을 학습 및 비교할 수 있도록 구현한 코드라고 볼 수 있다.PyCaret
패키지: https://pycaret.org/
- 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
- 처음 M1를 구매했다면, Xcode Command Line Tools를 Apple Developer를 통해서 설치한다.
(2) Step 02. miniforge 설치
- 본 블로그에서 가장 중요하다.
- 2021년 12월 기준 시점에서는 반드시 설치를 해야 한다.
- GPU를 사용하기 위해서는 LightGBM, XGBoost, PyCaret은 Conda 기반으로만 설치가 가능하다.
- 설치 파일 주소: https://github.com/conda-forge/miniforge
- 설치 시, 아래 그림과 같이
arm64 Apple Silicon
을 선택해서 다운로드 받아야 한다.
- 설치 시, 아래 그림과 같이
(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 테스트
- 이제
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 창에서 아래와 같이 확인되면 정상적으로 세팅이 완료된 것으로 볼 수 있다.
- PyCaret의 가장 큰 장점은 MLOps 툴 중의 하나인 MLFlow를 매우 쉽게 사용할 수 있다는 점이다. 이 부분은 다음 코드를 실행해서 확인한다.
$ mlflow ui