pycaret
은 기존에 있던 Scikit-learn, XGBoost, LightGBM, spaCy 등 여러가지 머신러닝 라이브러리를 ML High-Level API로 제작한 라이브러리다. 단 몇 줄만에 데이터 분석 및 머신러닝 모델 성능 비교까지 가능하고, Log를 생성하여 이력을 남겨준다.
pd.dataframe 으로 로드되어진 데이터를 머신러닝에 사용할 수 있도록 로드 및 전처리하는 기능이다.
데이터 전처리 단계에서 적용하는 기법들에 대해서 파라미터로 간단하게 사용할 수 있도록 구현해놓았다.
from pycaret.classification import setup
clf1 = setup(data, target='Purchase', session_id=123, log_experiment=True, experiment_name='exam_juice')
pycaret에 구현된 머신러닝 기법들을 사용하려면 무조건 런타임에 먼저 setup이 로드되어야 한다.
Classification 예제이며 다른 모듈도 사용법이 크게 다르진 않다. (전처리 파라미터는 머신러닝 기법 별로 상이할 수 있다.)
데이터 준비(setup) 이후, 머신러닝 모델을 선언해서 사용하거나, 전처리한 데이터셋에 맞는 모델을 비교해볼 수 있다.
model()
compare_models()
create_model()
model()
에 적힌 머신러닝 모델을 선택해서 생성한다.2번째에서 compare_models 나 create_model을 사용해서 각각의 모델들을 생성하거나 비교하였다. 결과를 바탕으로 성능이 좋은 모델들을 조합하여 실험해볼 수 있는 모듈을 제공한다.
pycaret은 위에서 소개된 방법을 사용하여 학습한 이후에 데이터셋이 잘 학습되었는 지 검증을 도와주는 모듈을 제공한다.
pycaret 이라는 머신러닝 라이브러리에 대해 알아보았다. scikit-learn을 래핑한 라이브러리라 Keras처럼 사용하기 편리하다는 장점이 있었다. 하지만 Keras는 Tensorflow에 종속되어 있어 Tensorflow에 대한 이해가 필요하듯이, pycaret도 scikit-learn에 대한 이해없이 사용은 가능하지만, scikit-learn 이해 이후 사용한다면, 좀 더 유동적인 프로그래밍이 가능하다. 그리고 pandas-profiling 처럼 쉽게 사용하는 만큼, 머신러닝 기초 지식을 많이 공부하여 분석 결과에 대한 분석, 기법에 대한 이해 등이 필요하다.
좋은 글 감사합니다. 데이터 전처리 후 pycaret setup 에서 normalization True 로 설정해서 모델 생성을 했다면,
추후에 inference 할때 data는 normalization을 따로 해준뒤 inference 해야 하나요? 아니면 그냥 model에 넣으면 normalization 까지 처리해주나요?