<aside>
</aside>
μ§κΈκΉμ§ μ°λ¦¬λ λ°μ΄ν°λ₯Ό μ€λΉνκ³ , μλ§μ λͺ¨λΈμ λΉκ΅νκ³ , μ±νΌμΈ λͺ¨λΈμ νλνκ³ , κ·Έ μ±λ₯μ λ€κ°λλ‘ λΆμνμ΅λλ€. μ λ§ κΈ΄ μ¬μ μ΄μμ£ ! μ΄μ κ·Έ λͺ¨λ λ Έλ ₯μ κ²°μ€μ λ§Ίμ μκ°μ λλ€. μ΄λ² μκ°μλ μ°λ¦¬κ° λ§λ μ΅κ³ μ λͺ¨λΈμ κ°μ§κ³ μ€μ μμΈ‘μ μννλ λ°©λ²κ³Ό, λͺ¨λΈμ μ€μ μλΉμ€μ λ°°ν¬ν μ μλ μνλ‘ 'ν¨ν€μ§'νλ λ°©λ²μ λ°°μΈ κ²λλ€. λΆμμμ μ€μ κ°μΉ μ°½μΆλ‘ μ΄μ΄μ§λ, κ°μ₯ μ€μ©μ μ΄κ³ μ€μν λ§μ§λ§ λ¨κ³μ μ€μ κ²μ νμν©λλ€!
predict_model()
ν¨μλ₯Ό μ¬μ©ν΄ νλμμ(ν
μ€νΈ) λ°μ΄ν°μ μμ ν μλ‘μ΄ λ°μ΄ν°μ λν μμΈ‘μ μνν μ μμ΅λλ€.finalize_model()
μ λͺ©μ κ³Ό μ€μμ±μ μ΄ν΄ν©λλ€.save_model()
κ³Ό load_model()
μ μ¬μ©νμ¬, μ μ²λ¦¬ κ³Όμ μ ν¬ν¨ν μ 체 λͺ¨λΈ νμ΄νλΌμΈμ μ μ₯νκ³ λΆλ¬μ¬ μ μμ΅λλ€.π‘ 7κ°μμ νλν λͺ¨λΈμ κ°μ§κ³ μ΅μ’ μ±λ₯μ κ²μ¦νκ³ , μλ‘μ΄ λ°μ΄ν°μ λν μμΈ‘μ μνν λ€, λ°°ν¬λ₯Ό μν΄ νμΌλ‘ μ μ₯νκ³ λ€μ λΆλ¬μ κ²μ¦νλ μ 체 κ³Όμ μ λ€λ£Ήλλ€.
# 1. λΌμ΄λΈλ¬λ¦¬ μ€λΉ
import pandas as pd
from pycaret.datasets import get_data
from pycaret.regression import setup, create_model, tune_model, predict_model, finalize_model, save_model, load_model
# 2. λ°μ΄ν° λ‘λ λ° μ€ν νκ²½ μ€μ
df = get_data('insurance')
setup(data=df, target='charges', session_id=123, fold_shuffle=True)
# 3. λͺ¨λΈ μμ± λ° νλ
base_model = create_model('gbr', verbose=False) # ν μ€λ³΅ μΆλ ₯μ λ§κΈ° μν΄ verbose=False
tuned_model = tune_model(base_model, optimize = 'R2', n_iter=200, verbose=False)
# 4. νλμμ λ°μ΄ν°λ‘ μ΅μ’
μ±λ₯ κ²μ¦
print("--- 1. νλμμ λ°μ΄ν°μ
μ±λ₯ κ²μ¦ ---")
holdout_predictions = predict_model(tuned_model)
# 5. λ°°ν¬λ₯Ό μν λͺ¨λΈ μ΅μ’
νμ
final_model = finalize_model(tuned_model)
# 6. λͺ¨λΈ νμ΄νλΌμΈ μ μ₯
save_model(final_model, 'final_insurance_model_pipeline')
# 7. μ μ₯λ λͺ¨λΈ λΆλ¬μ€κΈ° λ° μ κ· λ°μ΄ν° μμΈ‘
saved_pipeline = load_model('final_insurance_model_pipeline')
# κ°μμ μ κ· λ°μ΄ν° μμ± (target 컬λΌμ΄ μμ)
new_data = pd.DataFrame({
'age': [35, 50], 'sex': ['male', 'female'], 'bmi': [25.5, 30.2],
'children': [1, 2], 'smoker': ['no', 'yes'], 'region': ['southwest', 'northeast']
})
new_predictions = predict_model(saved_pipeline, data=new_data)
print("\\n--- 2. μ μ₯λ νμ΄νλΌμΈμΌλ‘ μ κ· λ°μ΄ν° μμΈ‘ κ²°κ³Ό ---")
print(new_predictions)
predict_model()
μ€ν κ²°κ³Ό (νλμμ λ°μ΄ν°)setup() μ λΆλ¦¬ν΄ λμλ ν μ€νΈ λ°μ΄ν°μ λν μ΅μ’ μ±μ νμ λλ€. R2 μ μκ° 0.8824λ‘ λ§€μ° λκ² λμμ΅λλ€.
--- 1. νλμμ λ°μ΄ν°μ
μ±λ₯ κ²μ¦ ---
Model MAE MSE RMSE R2 RMSLE MAPE
0 Gradient Boosting Regressor 2460.3846 1.679865e+07 4098.6157 0.8824 0.3826 0.2926
save_model()
& load_model()
μ€ν λ©μμ§λͺ¨λΈ νμ΄νλΌμΈμ΄ μ±κ³΅μ μΌλ‘ μ μ₯λκ³ λ€μ λΆλ¬μμ‘μμ νμΈν©λλ€.