Pycaret (AutoML)

임정민·2024년 6월 20일
1

MLOps 공부

목록 보기
3/7
post-thumbnail

활용 프로젝트

  • '수입 중고차 가격 예측 프로젝트' 메타버스 아카데미 머신러닝 프로젝트

활용안

  • 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

profile
https://github.com/min731

0개의 댓글

관련 채용 정보