본문으로 건너뛰기

003 Jupyter Notebook에서 PyCaret 시작하기

키워드: Jupyter, 시작하기

개요

Jupyter Notebook은 데이터 과학과 머신러닝 작업에 가장 널리 사용되는 개발 환경입니다. 코드, 시각화, 설명을 한 곳에서 작성하고 실행할 수 있어 PyCaret과 궁합이 잘 맞습니다. 이 글에서는 Jupyter Notebook에서 PyCaret을 효과적으로 사용하는 방법을 알아보겠습니다.

실습 환경

  • Python 버전: 3.11 권장
    • Python 3.11은 2027년 말까지 지원되며, PyCaret 호환 최신 버전입니다.
  • 필요 패키지: pycaret[full]>=3.0, pandas, matplotlib
pip install pycaret[full]>=3.0 pandas matplotlib

⚠️ Google Colab 사용 불가 Google Colab은 2025년 8월부터 Python 3.12만 지원하여 PyCaret(3.8~3.11) 실습이 불가능합니다. 로컬 환경이나 Docker를 사용해 주세요.

Jupyter Notebook 설치 및 실행

설치

가상환경이 활성화된 상태에서 Jupyter를 설치합니다:

pip install jupyter notebook

실행

jupyter notebook

브라우저가 자동으로 열리며 Jupyter 대시보드가 표시됩니다. 기본 주소는 http://localhost:8888입니다.

새 노트북 생성

  1. 우측 상단 New 버튼 클릭
  2. Python 3 선택
  3. 새 노트북이 열립니다

PyCaret 기본 워크플로우

Jupyter에서 PyCaret을 사용하는 기본 흐름을 단계별로 살펴보겠습니다.

1단계: 라이브러리 임포트

# 003 첫 번째 셀
# 003 분류 문제의 경우
from pycaret.classification import *

# 003 회귀 문제의 경우 (대신 사용)
# 003 from pycaret.regression import *

import pandas as pd
import warnings
warnings.filterwarnings('ignore')

2단계: 데이터 로드

PyCaret은 학습용 내장 데이터세트를 제공합니다:

# 003 두 번째 셀
# 003 내장 데이터세트 목록 확인
from pycaret.datasets import get_data

# 003 사용 가능한 데이터세트 목록
get_data('index')

주요 내장 데이터세트:

데이터세트유형설명
iris분류붓꽃 품종 분류
titanic분류타이타닉 생존 예측
diabetes분류당뇨병 예측
boston회귀보스턴 주택 가격
insurance회귀보험료 예측
# 003 세 번째 셀
# 003 타이타닉 데이터 로드
data = get_data('titanic')

출력:

     PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0 1 0 3 ... 7.2500 NaN S
1 2 1 1 ... 71.2833 C85 C
2 3 1 3 ... 7.9250 NaN S
...

3단계: 환경 설정 (setup)

setup() 함수는 PyCaret의 핵심입니다. 데이터 전처리와 실험 환경을 자동으로 설정합니다:

# 003 네 번째 셀
clf = setup(
data=data, # 데이터프레임
target='Survived', # 예측할 타겟 컬럼
session_id=42 # 재현성을 위한 랜덤 시드
)

setup() 실행 시 PyCaret이 자동으로 수행하는 작업:

  • 특성 유형 자동 감지 (숫자형, 범주형)
  • 결측치 처리
  • 범주형 변수 인코딩
  • 학습/테스트 데이터 분할 (기본 70:30)

4단계: 모델 비교

# 003 다섯 번째 셀
# 003 여러 모델 한 번에 비교
best_model = compare_models()

출력 예시:

ModelAccuracyAUCRecallPrec.F1Kappa
Gradient Boosting0.83150.87240.71430.81080.75950.6373
Random Forest0.82490.86430.68830.81080.74470.6195
Light GBM0.81830.85920.67530.80000.73240.6038
.....................

compare_models()는 15개 이상의 알고리즘을 자동으로 학습하고 비교합니다!

5단계: 모델 생성 및 튜닝

# 003 여섯 번째 셀
# 003 특정 모델 생성
rf = create_model('rf') # Random Forest

# 003 하이퍼파라미터 튜닝
tuned_rf = tune_model(rf)

6단계: 모델 시각화

# 003 일곱 번째 셀
# 003 다양한 시각화
plot_model(tuned_rf, plot='confusion_matrix') # 혼동 행렬
plot_model(tuned_rf, plot='auc') # ROC 곡선
plot_model(tuned_rf, plot='feature') # 특성 중요도

7단계: 예측

# 003 여덟 번째 셀
# 003 테스트 데이터에 예측
predictions = predict_model(tuned_rf)
print(predictions.head())

8단계: 모델 저장

# 003 아홉 번째 셀
# 003 모델 저장
save_model(tuned_rf, 'my_first_model')

# 003 나중에 불러오기
# 003 loaded_model = load_model('my_first_model')

Jupyter에서 유용한 팁

1. 대화형 출력 활용

PyCaret은 Jupyter의 대화형 기능을 적극 활용합니다. 테이블과 그래프가 셀 바로 아래에 표시됩니다.

2. 진행 상황 표시

compare_models() 등의 함수 실행 시 진행률 바가 표시됩니다:

Processing:  |████████████████████████████████| 100%

3. HTML 리포트

# 003 실험 결과를 HTML로 저장
# 003 setup() 후에 실행
from pycaret.classification import pull

# 003 마지막 실행 결과 가져오기
results = pull()
results.to_html('experiment_results.html')

4. 노트북 자동 저장 설정

Jupyter 설정에서 자동 저장 간격을 조절할 수 있습니다:

%autosave 60  # 60초마다 자동 저장

5. 메모리 관리

대용량 데이터 작업 시 메모리 관리가 중요합니다:

import gc

# 003 불필요한 변수 삭제 후 가비지 컬렉션
del large_dataframe
gc.collect()

완전한 예제: 타이타닉 생존 예측

# 003 전체 워크플로우를 하나의 예제로

# 1. 임포트
from pycaret.classification import *
import pandas as pd

# 2. 데이터 로드
data = get_data('titanic')

# 3. 환경 설정
clf = setup(data, target='Survived', session_id=42)

# 4. 모델 비교 (상위 3개만)
top3 = compare_models(n_select=3)

# 5. 최고 모델 튜닝
tuned = tune_model(top3[0])

# 6. 앙상블
blended = blend_models(top3)

# 7. 최종 모델 확정
final = finalize_model(blended)

# 8. 저장
save_model(final, 'titanic_survival_model')

print("완료!")

정리

  • Jupyter Notebook은 PyCaret과 함께 사용하기 좋은 환경입니다.
  • PyCaret 기본 워크플로우: setup()compare_models()tune_model()predict_model()save_model()
  • 한 줄의 코드로 여러 모델을 비교할 수 있습니다.
  • 대화형 시각화와 테이블로 결과를 쉽게 확인할 수 있습니다.
  • 실험 결과를 저장하고 재현할 수 있습니다.

다음 글 예고

다음 글에서는 PyCaret 지원 모듈 총정리에 대해 알아보겠습니다. 분류, 회귀, 클러스터링, 이상치 탐지, 시계열 등 각 모듈의 특징과 사용 상황을 자세히 다룹니다.


PyCaret 머신러닝 마스터 시리즈 #003