본문으로 건너뛰기

004 PyCaret 지원 모듈 총정리

키워드: 모듈, 분류, 회귀, 클러스터링

개요

PyCaret은 다양한 머신러닝 작업을 지원하는 여러 모듈을 제공합니다. 각 모듈은 특정 유형의 문제를 해결하기 위해 최적화되어 있으며, 동일한 API 구조를 공유하여 일관된 사용 경험을 제공합니다. 이 글에서는 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를 사용해 주세요.

PyCaret 모듈 구조

PyCaret 3.x는 크게 지도 학습비지도 학습 모듈로 나뉩니다.

지도 학습 모듈

모듈임포트문제 유형예시
Classificationfrom pycaret.classification import *이진/다중 분류스팸 분류, 고객 이탈 예측
Regressionfrom pycaret.regression import *수치 예측주택 가격, 매출 예측
Time Seriesfrom pycaret.time_series import *시계열 예측판매량 예측, 주가 예측

비지도 학습 모듈

모듈임포트문제 유형예시
Clusteringfrom pycaret.clustering import *데이터 군집화고객 세분화
Anomaly Detectionfrom pycaret.anomaly import *이상치 탐지사기 탐지, 설비 이상 감지

1. 분류 모듈 (Classification)

분류 모듈은 범주형 타겟을 예측하는 문제에 사용합니다.

주요 기능

from pycaret.classification import *

# 004 환경 설정
clf = setup(data, target='label')

# 004 모델 비교
best = compare_models()

# 004 모델 생성
model = create_model('rf') # Random Forest

# 004 하이퍼파라미터 튜닝
tuned = tune_model(model)

# 004 앙상블
blended = blend_models([model1, model2, model3])

# 004 예측
predictions = predict_model(tuned, data=new_data)

지원 알고리즘 (18개)

  • Logistic Regression (lr)
  • K Nearest Neighbor (knn)
  • Naive Bayes (nb)
  • Decision Tree (dt)
  • SVM - Linear Kernel (svm)
  • SVM - RBF Kernel (rbfsvm)
  • Gaussian Process (gpc)
  • Multi-Layer Perceptron (mlp)
  • Ridge Classifier (ridge)
  • Random Forest (rf)
  • Quadratic Discriminant Analysis (qda)
  • AdaBoost (ada)
  • Gradient Boosting (gbc)
  • Linear Discriminant Analysis (lda)
  • Extra Trees (et)
  • XGBoost (xgboost)
  • LightGBM (lightgbm)
  • CatBoost (catboost)

적합한 사용 사례

  • 이메일 스팸 분류
  • 고객 이탈 예측
  • 질병 진단
  • 신용 평가
  • 제품 추천 (이진 분류)

2. 회귀 모듈 (Regression)

회귀 모듈은 연속적인 수치를 예측하는 문제에 사용합니다.

주요 기능

from pycaret.regression import *

# 004 환경 설정
reg = setup(data, target='price')

# 004 모델 비교
best = compare_models()

# 004 모델 생성
model = create_model('lightgbm')

# 004 평가 지표: MAE, MSE, RMSE, R2, RMSLE, MAPE

지원 알고리즘 (25개+)

  • Linear Regression (lr)
  • Lasso Regression (lasso)
  • Ridge Regression (ridge)
  • Elastic Net (en)
  • Least Angle Regression (lar)
  • Lasso Least Angle Regression (llar)
  • Orthogonal Matching Pursuit (omp)
  • Bayesian Ridge (br)
  • Automatic Relevance Determination (ard)
  • Passive Aggressive Regressor (par)
  • Random Sample Consensus (ransac)
  • TheilSen Regressor (tr)
  • Huber Regressor (huber)
  • Kernel Ridge (kr)
  • Support Vector Machine (svm)
  • K Nearest Neighbor (knn)
  • Decision Tree (dt)
  • Random Forest (rf)
  • Extra Trees (et)
  • AdaBoost (ada)
  • Gradient Boosting (gbr)
  • Multi-Layer Perceptron (mlp)
  • XGBoost (xgboost)
  • LightGBM (lightgbm)
  • CatBoost (catboost)

적합한 사용 사례

  • 주택 가격 예측
  • 매출 예측
  • 수요 예측
  • 보험료 산정
  • 재고 최적화

3. 클러스터링 모듈 (Clustering)

클러스터링 모듈은 비슷한 특성을 가진 데이터를 그룹화합니다.

주요 기능

from pycaret.clustering import *

# 004 환경 설정 (타겟 없음)
clust = setup(data)

# 004 모델 생성
kmeans = create_model('kmeans')

# 004 클러스터 라벨 할당
results = assign_model(kmeans)

# 004 시각화
plot_model(kmeans, plot='cluster')

지원 알고리즘 (11개)

  • K-Means (kmeans)
  • Affinity Propagation (ap)
  • Mean Shift (meanshift)
  • Spectral Clustering (sc)
  • Agglomerative Clustering (hclust)
  • DBSCAN (dbscan)
  • OPTICS (optics)
  • Birch (birch)
  • K-Modes (kmodes) - 범주형 데이터용

적합한 사용 사례

  • 고객 세분화
  • 시장 세그멘테이션
  • 문서 군집화
  • 이미지 분류
  • 유전자 발현 분석

4. 이상치 탐지 모듈 (Anomaly Detection)

이상치 탐지 모듈은 정상 패턴에서 벗어난 데이터를 찾습니다.

주요 기능

from pycaret.anomaly import *

# 004 환경 설정
ano = setup(data)

# 004 모델 생성
iforest = create_model('iforest')

# 004 이상치 라벨 할당
results = assign_model(iforest)

# 004 Anomaly 컬럼: 1(이상치), 0(정상)

지원 알고리즘 (12개)

  • Isolation Forest (iforest)
  • K Nearest Neighbors (knn)
  • Local Outlier Factor (lof)
  • Support Vector Machine (svm)
  • Principal Component Analysis (pca)
  • Minimum Covariance Determinant (mcd)
  • Subspace Outlier Detection (sod)
  • Connectivity-Based Outlier Factor (cof)
  • Stochastic Outlier Selection (sos)
  • Histogram-based Outlier Detection (histogram)
  • Clustering-Based Local Outlier Factor (cluster)

적합한 사용 사례

  • 신용카드 사기 탐지
  • 네트워크 침입 감지
  • 제조 공정 이상 감지
  • 의료 이상 진단
  • 센서 데이터 모니터링

5. 시계열 모듈 (Time Series)

시계열 모듈은 시간에 따른 데이터의 미래 값을 예측합니다.

주요 기능

from pycaret.time_series import *

# 004 환경 설정
ts = setup(data, target='sales', fh=12) # 12 스텝 예측

# 004 모델 비교
best = compare_models()

# 004 예측
predictions = predict_model(best)

# 004 시각화
plot_model(best, plot='forecast')

지원 알고리즘

  • ARIMA 계열 (Auto-ARIMA, SARIMA)
  • Exponential Smoothing (ETS)
  • Theta Method
  • Prophet
  • 머신러닝 모델 (RandomForest, XGBoost 등의 시계열 버전)

적합한 사용 사례

  • 판매량 예측
  • 재고 수요 예측
  • 에너지 소비 예측
  • 웹사이트 트래픽 예측
  • 금융 시계열 분석

모듈 선택 가이드

문제 유형 파악

├─ 예측할 값이 있는가? (타겟 변수)
│ │
│ ├─ 예 → 지도 학습
│ │ │
│ │ ├─ 타겟이 범주형인가?
│ │ │ ├─ 예 → Classification
│ │ │ └─ 아니오 (수치형) → Regression
│ │ │
│ │ └─ 시간 순서가 중요한가?
│ │ └─ 예 → Time Series
│ │
│ └─ 아니오 → 비지도 학습
│ │
│ ├─ 그룹화가 목적인가?
│ │ └─ 예 → Clustering
│ │
│ └─ 이상값 탐지가 목적인가?
│ └─ 예 → Anomaly Detection

모듈 간 공통 함수

모든 PyCaret 모듈은 동일한 함수명과 구조를 공유합니다:

함수설명
setup()환경 설정 및 전처리
compare_models()여러 모델 비교
create_model()단일 모델 생성
tune_model()하이퍼파라미터 튜닝
plot_model()시각화
predict_model()예측 수행
save_model()모델 저장
load_model()모델 불러오기

정리

  • PyCaret은 분류, 회귀, 클러스터링, 이상치 탐지, 시계열 5가지 핵심 모듈을 제공합니다.
  • 각 모듈은 동일한 API 구조를 사용하여 학습 곡선이 완만합니다.
  • 문제 유형에 따라 적절한 모듈을 선택하면 됩니다.
  • 모든 모듈에서 compare_models()로 최적의 알고리즘을 빠르게 찾을 수 있습니다.

다음 글 예고

다음 글에서는 데이터 로딩 - CSV, Excel, SQL 연동에 대해 알아보겠습니다. 다양한 데이터 소스에서 데이터를 불러와 PyCaret에서 활용하는 방법을 다룹니다.


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