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는 크게 지도 학습과 비지도 학습 모듈로 나뉩니다.
지도 학습 모듈
| 모듈 | 임포트 | 문제 유형 | 예시 |
|---|---|---|---|
| Classification | from pycaret.classification import * | 이진/다중 분류 | 스팸 분류, 고객 이탈 예측 |
| Regression | from pycaret.regression import * | 수치 예측 | 주택 가격, 매출 예측 |
| Time Series | from pycaret.time_series import * | 시계열 예측 | 판매량 예측, 주가 예측 |
비지도 학습 모듈
| 모듈 | 임포트 | 문제 유형 | 예시 |
|---|---|---|---|
| Clustering | from pycaret.clustering import * | 데이터 군집화 | 고객 세분화 |
| Anomaly Detection | from 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