pycaret — 코드 몇 줄로 머신러닝 모델 만들기

John
5 min readJun 10, 2020

--

최근에 굉장히 훌륭한 파이썬 라이브러리를 찾게 되었다.

라이브러리 이름은 pycaret이고 데이터셋만 있으면 간단하게 모델링부터 하이퍼 파라미터 튜닝 그리고 feature importance 등등의 작업까지 딱 코드 한줄로 가능하게끔 하는 기능이 있는 라이브러리다.

바로 샘플로 진행한다.

코드

iris와 더불어 튜토리얼에 요긴하게 쓰인 타이타닉 데이터로 진행한다.

  1. 데이터 불러오기
import pandas as pddf = pd.read_csv('/titanic/train.csv')

2. 라이브러리를 실행시키고, setup 메소드 실행
(pip install pycaret 사전 진행)

from pycaret.classification import *
exp1 = setup(df, target = 'Survived',
ignore_features=['PassengerId'])

다음과 같이 불필요한 index성 열을 제외하고 setup이라는 메소드를 실행 시킨다.
* setup 메소드는 다양한 파라미터를 제공하기 때문에 자신에게 필요한 기능을 찾아서 쓰면 된다.

(참고 : https://pycaret.org/setup/)

그리고 엔터를 누르면 다음과 같이 description이 제공된다.

3. 다양한 모델들과의 성능 비교

이 기능을 보고 깜짝 놀랐는데.. 머신러닝으로 모델링할 때 사용되는 대부분의 알고리즘들은 다 구성되어 있고, 이들 중 어떤 모델이 가장 성능이 좋은지 확인 가능하다.

compare_models()

4. 모델 생성

adaboost = create_model('ada')

저 위에 있는 모델 중 만들고 싶은 모델을 선택해서 create_model()함수를 사용한다.

모델은 위의 화면에서 약어를 확인할 수 있다.

5. 모델 튜닝

tuned_adaboost = tune_model('ada')

모델을 하이퍼파라미터로 자동으로 튜닝시켜주는 기능이다.

왼쪽이 튜닝 전, 오른쪽이 튜닝 후이다. 많이 개선되었음을 확인할 수 있다.

6. AUC 곡선 / 오차 행렬

plot_model(estimator = tuned_adaboost, plot = 'auc')
plot_model(estimator = tuned_adaboost, plot = 'confusion_matrix')

7. Feature Importance

plot_model(estimator = tuned_adaboost, plot = 'feature')

8. 모델 평가

evaluate_model(tuned_adaboost)

짱입니다..

9. 예측

test = pd.read_csv('titanic/test.csv')ada_final = finalize_model(tuned_adaboost)
predict_model(ada_final,test)

끝!

정말 간단하고 대단한 라이브러리인 것 같다.
지난 번에 사용한 EDA 자동화 라이브러리에 이어서 정말 유용하게 쓰일 수 있는 ML 모델링 라이브러리에 대한 소개였다.

참고

--

--