활용 프로젝트
활용안
Python 오픈소스 머신러닝 라이브러리
setup(Pycaret) 함수, ColumnTransformer(scikit-learn) 클래스 활용 브랜드명, 모델명, 판매도시 Label encoding / 출시년도, 연식 MinMax scaling
최적의 모델 아키텍처 선정 'compare_models()'
선정된 최적의 모델 아키텍처 기준 하이퍼파라미터 튜닝 'tune_model()'
ROC Curve, Confusion Metrics 등 평가 지표 시각화
Pycaret 주요 기능
import pandas as pd
from pycaret.classification import setup, compare_models, tune_model, plot_model
from sklearn.preprocessing import LabelEncoder, MinMaxScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from pycaret.datasets import get_data
# 데이터셋 로드 (예시로 iris 데이터셋 사용)
data = get_data('iris')
# 컬럼 리스트 정의
label_cols = ['species'] # 라벨 인코딩할 컬럼
scale_cols = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width'] # MinMax Scaling할 컬럼
# 전처리 파이프라인 정의
preprocessor = ColumnTransformer(
transformers=[
('label', OneHotEncoder(), label_cols),
('scale', MinMaxScaler(), scale_cols)
],
remainder='passthrough' # 나머지 컬럼은 그대로 유지
)
# 파이프라인을 PyCaret에 통합
clf_setup = setup(data,
target='species',
preprocess=True, # PyCaret 기본 전처리 기능 사용
custom_pipeline=Pipeline(steps=[('preprocessor', preprocessor)])
)
# 모델 비교 및 선택
best_model = compare_models()
# 모델 튜닝
tuned_model = tune_model(best_model)
# 평가 지표 시각화
plot_model(tuned_model, plot='auc')
plot_model(tuned_model, plot='confusion_matrix')
plot_model(tuned_model, plot='feature')
# 모델 최종화
final_model = finalize_model(tuned_model)
# API 생성
create_api(best_model,'first_api')
# DockerFile 생성
create_docker('first_api')
‘lr’ - Linear Regression
‘lasso’ - Lasso Regression
‘ridge’ - Ridge Regression
‘svm’ - Support Vector Regression
‘knn’ - K Neighbors Regressor
‘dt’ - Decision Tree Regressor
‘rf’ - Random Forest Regressor
‘gbr’ - Gradient Boosting Regressor
‘mlp’ - MLP Regressor
‘xgboost’ - Extreme Gradient Boosting
‘lightgbm’ - Light Gradient Boosting Machine