Created at : 2024-10-31 11:03
Auther: Soo.Y


πŸ“λ©”λͺ¨

PyCaret은 파이썬(Python)으둜 μž‘μ„±λœ μ˜€ν”ˆ μ†ŒμŠ€ λ¨Έμ‹  λŸ¬λ‹ λΌμ΄λΈŒλŸ¬λ¦¬λ‘œμ„œ, μ½”λ“œ μž‘μ„±μ„ μ΅œμ†Œν™”ν•˜μ—¬ λ¨Έμ‹  λŸ¬λ‹ μ‹€ν—˜μ„ λΉ λ₯΄κ³  μ‰½κ²Œ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Low-code ν™˜κ²½μ„ μ œκ³΅ν•˜μ—¬ λ³΅μž‘ν•œ λ¨Έμ‹  λŸ¬λ‹ λͺ¨λΈμ˜ ꡬ좕, 비ꡐ, μ΅œμ ν™” 과정을 κ°„μ†Œν™”ν•˜κ³  μžλ™ν™”ν•©λ‹ˆλ‹€.

PyCaret Github : https://github.com/pycaret/pycaret


PyCaret ?

μ£Όμš” νŠΉμ§•

1. λ‹€μ–‘ν•œ λ¨Έμ‹  λŸ¬λ‹ μž‘μ—… 지원

  • λΆ„λ₯˜(Classification)
  • νšŒκ·€(Regression)
  • ν΄λŸ¬μŠ€ν„°λ§(Clustering)
  • μ΄μƒμΉ˜ 탐지(Anomaly Detection)
  • μžμ—°μ–΄ 처리(Natural Language Processing)
  • μ‹œκ³„μ—΄ 예츑(Time Series Forecasting)

2. μ‚¬μš©μž μΉœν™”μ μΈ μΈν„°νŽ˜μ΄μŠ€

  • λ³΅μž‘ν•œ μ•Œκ³ λ¦¬μ¦˜κ³Ό νŒŒλΌλ―Έν„° νŠœλ‹ 과정을 λ‹¨μˆœν™”ν•˜μ—¬, λͺ‡ μ€„μ˜ μ½”λ“œλ‘œ λ‹€μ–‘ν•œ λͺ¨λΈμ„ κ΅¬μΆ•ν•˜κ³  비ꡐ할 수 μžˆμŠ΅λ‹ˆλ‹€.

3. μžλ™ν™”λœ λ¨Έμ‹  λŸ¬λ‹ μ›Œν¬ν”Œλ‘œμš°

  • 데이터 μ „μ²˜λ¦¬, νŠΉμ§• 곡학, λͺ¨λΈ ν•™μŠ΅, ν•˜μ΄νΌνŒŒλΌλ―Έν„° μ΅œμ ν™”, λͺ¨λΈ 평가 및 λ°°ν¬κΉŒμ§€μ˜ μ „ 과정을 μžλ™ν™”ν•©λ‹ˆλ‹€.

4. 톡합 및 ν™•μž₯μ„±

  • Pandas, NumPy, scikit-learn λ“±κ³Ό 같은 인기 μžˆλŠ” 파이썬 λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν†΅ν•©λ˜μ–΄ 있으며, TensorFlow, PyTorch λ“±μ˜ λ”₯λŸ¬λ‹ ν”„λ ˆμž„μ›Œν¬μ™€λ„ 연동이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

PyCaret Install

PyCaret은 poetryλ₯Ό ν†΅ν•΄μ„œ μ„€μΉ˜κ°€ κ°€λŠ₯ν•˜λ‹€. λ‹€λ₯Έ λΌμ΄λΈŒλŸ¬λ¦¬λ“€κ³Όμ˜ ν˜Έν™˜μ„ μœ„ν•΄μ„œ poetryλ₯Ό μΆ”μ²œν•©λ‹ˆλ‹€.

poetry add pycaret

python 3.11 μΆ”μ²œ 2024.10.31 κΈ°μ€€μœΌλ‘œ pycaret은 python 버전이 3.12κΉŒμ§€λ§Œ ν˜Έν™˜λ˜κ³  μžˆλ‹€. ν•˜μ§€λ§Œ λ‹€λ₯Έ νŒ¨κΈ°μ§€ 문제둜 python 3.11을 μΆ”μ²œν•œλ‹€.

πŸ’₯ λ§Œμ•½ μœ„μ˜ μŠ€ν¬λ¦°μƒ· 처럼 kaleido의 μ„€μΉ˜ μ‹€νŒ¨κ°€ λ°œμƒν•œλ‹€λ©΄, 0.2.1 버전을 μ„€μΉ˜ν•˜λ©΄ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. kaledioλ₯Ό μ •μƒμ μœΌλ‘œ μ„€μΉ˜λ˜μ—ˆλ‹€λ©΄ pycaretλ₯Ό λ‹€μ‹œ μ„€μΉ˜ μ‹œλ„ν•˜λ©΄ λ©λ‹ˆλ‹€.

poetry add kaleido=0.2.1

κΈ°λ³Έ μ‚¬μš© μ˜ˆμ‹œ

λ‹€μŒμ€ PyCaret을 μ‚¬μš©ν•œ κ°„λ‹¨ν•œ λΆ„λ₯˜ λͺ¨λΈ ꡬ좕 μ˜ˆμ‹œμž…λ‹ˆλ‹€:

import pandas as pd
from pycaret.classification import *
 
# 데이터 λ‘œλ“œ
data = pd.read_csv('data.csv')
 
# ν™˜κ²½ μ„€μ •
s = setup(data, target='target_column')
 
# λͺ¨λΈ 비ꡐ
best_model = compare_models()
 
# νŠΉμ • λͺ¨λΈ 생성
model = create_model('lightgbm')
 
# λͺ¨λΈ νŠœλ‹
tuned_model = tune_model(model)
 
# λͺ¨λΈ 평가
evaluate_model(tuned_model)
 
# λͺ¨λΈ μ €μž₯
save_model(tuned_model, 'best_model')

μž₯점

1. νš¨μœ¨μ„±

  • λͺ‡ μ€„μ˜ μ½”λ“œλ‘œ λ³΅μž‘ν•œ λ¨Έμ‹  λŸ¬λ‹ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ–΄ 개발 μ‹œκ°„μ„ μ ˆμ•½ν•©λ‹ˆλ‹€.

2. 비ꡐ 및 μ„ νƒμ˜ μš©μ΄μ„±

  • λ‹€μ–‘ν•œ μ•Œκ³ λ¦¬μ¦˜μ„ μ‰½κ²Œ λΉ„κ΅ν•˜μ—¬ 졜적의 λͺ¨λΈμ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

3. μžλ™ν™”

  • 반볡적인 μž‘μ—…μ„ μžλ™ν™”ν•˜μ—¬ μ‹€ν—˜ νš¨μœ¨μ„ λ†’μž…λ‹ˆλ‹€.

4. ꡐ윑용으둜 적합

  • λ¨Έμ‹  λŸ¬λ‹ μž…λ¬Έμžλ“€μ΄ 전체 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ΄ν•΄ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€.

μ£Όμ˜μ‚¬ν•­ 및 ν•œκ³„

  • μœ μ—°μ„± μ œν•œ: μžλ™ν™”λœ ν™˜κ²½μ΄κΈ° λ•Œλ¬Έμ— 세뢀적인 μ œμ–΄κ°€ ν•„μš”ν•œ 경우 ν•œκ³„κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ„±λŠ₯ μ΅œμ ν™”: λ³΅μž‘ν•œ μ»€μŠ€ν…€ λͺ¨λΈμ΄λ‚˜ νŠΉμˆ˜ν•œ 데이터셋에 λŒ€ν•΄μ„œλŠ” 졜적의 μ„±λŠ₯을 λ‚΄κΈ° μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 버전 ν˜Έν™˜μ„±: λ‹€μ–‘ν•œ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν†΅ν•©λ˜μ–΄ μžˆμœΌλ―€λ‘œ, 버전 ν˜Έν™˜μ„±μ— μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

ν™œμš© λΆ„μ•Ό

  • ν”„λ‘œν† νƒ€μ΄ν•‘: λΉ λ₯Έ λͺ¨λΈ 개발 및 ν…ŒμŠ€νŠΈκ°€ ν•„μš”ν•œ 경우.
  • ꡐ윑 및 ν•™μŠ΅: λ¨Έμ‹  λŸ¬λ‹μ˜ μ „ 과정을 μ΄ν•΄ν•˜κ³ μž ν•˜λŠ” ν•™μƒμ΄λ‚˜ μ΄ˆκΈ‰ 개발자.
  • 업무 μžλ™ν™”: 반볡적인 λ¨Έμ‹  λŸ¬λ‹ μž‘μ—…μ„ μžλ™ν™”ν•˜μ—¬ 생산성 ν–₯상.

κ²°λ‘ 

PyCaret은 λ¨Έμ‹  λŸ¬λ‹ μž‘μ—…μ„ κ°„μ†Œν™”ν•˜κ³  μžλ™ν™”ν•˜μ—¬ κ°œλ°œμžμ™€ 데이터 κ³Όν•™μžμ˜ 생산성을 λ†’μ—¬μ£ΌλŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. Low-code ν™˜κ²½μ„ 톡해 λ³΅μž‘ν•œ λ¨Έμ‹  λŸ¬λ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‰½κ²Œ λ‹€λ£° 수 있으며, λΉ λ₯Έ μ‹€ν—˜κ³Ό ν”„λ‘œν† νƒ€μ΄ν•‘μ— μ ν•©ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μœ μ—°μ„±μ΄ ν•„μš”ν•œ κ³ κΈ‰ μ‚¬μš©μžλ‚˜ νŠΉμˆ˜ν•œ μš”κ΅¬ 사항이 μžˆλŠ” κ²½μš°μ—λŠ” μ œν•œμ΄ μžˆμ„ 수 μžˆμœΌλ―€λ‘œ, μ΄λŸ¬ν•œ κ²½μš°μ—λŠ” 기쑴의 λ¨Έμ‹  λŸ¬λ‹ λΌμ΄λΈŒλŸ¬λ¦¬μ™€ λ³‘ν–‰ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.


πŸ“œμΆœμ²˜(μ°Έκ³  λ¬Έν—Œ)


πŸ”—μ—°κ²° λ¬Έμ„œ