014 PyCaret 기본 워크플로우 마스터하기
키워드: 워크플로우, 기본
개요
PyCaret의 강점은 일관된 워크플로우입니다. 어떤 문제 유형이든 동일한 함수들을 순서대로 호출하면 됩니다. 이 글에서는 PyCaret의 표준 워크플로우를 마스터합니다.
실습 환경
- Python 버전: 3.11 권장
- 필요 패키지:
pycaret[full]>=3.0
pip install pycaret[full]>=3.0
PyCaret 표준 워크플로우
1. setup() → 환경 설정
2. compare_models() → 모델 비교
3. create_model() → 모델 생성
4. tune_model() → 하이퍼파라미터 튜닝
5. plot_model() → 시각화
6. predict_model() → 예측
7. finalize_model() → 최종 모델
8. save_model() → 모델 저장
단계별 상세
1단계: setup() - 환경 설정
from pycaret.classification import *
from pycaret.datasets import get_data
data = get_data('diabetes')
clf = setup(
data=data,
target='Class variable',
session_id=42
)
2단계: compare_models() - 모델 비교
# 014 모든 알고리즘 비교 (15개+)
best = compare_models()
# 014 상위 3개만
top3 = compare_models(n_select=3)
# 014 특정 알고리즘 제외
best = compare_models(exclude=['svm', 'knn'])
# 014 특정 지표 기준
best = compare_models(sort='F1')
3단계: create_model() - 모델 생성
# 014 특정 알고리즘으로 모델 생성
rf = create_model('rf') # Random Forest
lr = create_model('lr') # Logistic Regression
xgb = create_model('xgboost') # XGBoost
# 014 교차 검증 폴드 지정
rf = create_model('rf', fold=5)
4단계: tune_model() - 하이퍼파라미터 튜닝
# 014 자동 튜닝
tuned_rf = tune_model(rf)
# 014 반복 횟수 지정
tuned_rf = tune_model(rf, n_iter=50)
# 014 최적화 지표 지정
tuned_rf = tune_model(rf, optimize='F1')
# 014 커스텀 그리드
custom_grid = {'n_estimators': [100, 200, 300]}
tuned_rf = tune_model(rf, custom_grid=custom_grid)
5단계: plot_model() - 시각화
# 014 AUC-ROC 곡선
plot_model(tuned_rf, plot='auc')
# 014 혼동 행렬
plot_model(tuned_rf, plot='confusion_matrix')
# 014 특성 중요도
plot_model(tuned_rf, plot='feature')
# 014 학습 곡선
plot_model(tuned_rf, plot='learning')
6단계: predict_model() - 예측
# 014 테스트 데이터에 예측
predictions = predict_model(tuned_rf)
# 014 새로운 데이터에 예측
new_data = data.head(10).drop('Class variable', axis=1)
new_pred = predict_model(tuned_rf, data=new_data)
7단계: finalize_model() - 최종 모델
# 014 전체 데이터로 재학습
final_model = finalize_model(tuned_rf)
8단계: save_model() / load_model() - 저장/로드
# 014 저장
save_model(final_model, 'diabetes_model')
# 014 로드
loaded_model = load_model('diabetes_model')
# 014 로드 후 예측
predictions = predict_model(loaded_model, data=new_data)
완전한 예제
from pycaret.classification import *
from pycaret.datasets import get_data
# 1. 데이터 로드
data = get_data('diabetes')
# 2. 환경 설정
clf = setup(data, target='Class variable', session_id=42, verbose=False)
# 3. 모델 비교
best = compare_models(n_select=1)
# 4. 튜닝
tuned = tune_model(best)
# 5. 앙상블 (선택)
bagged = ensemble_model(tuned)
# 6. 최종화
final = finalize_model(bagged)
# 7. 저장
save_model(final, 'final_diabetes_model')
print("워크플로우 완료!")
정리
- PyCaret 워크플로우는 8단계로 구성
- 모든 모듈에서 동일한 함수명 사용
compare_models()로 빠르게 최적 알고리즘 탐색finalize_model()로 전체 데이터 학습 후 배포
다음 글 예고
다음 글에서는 첫 번째 분류 모델 만들기를 다룹니다.
PyCaret 머신러닝 마스터 시리즈 #014