<aside>
</aside>
14강에서 우리는 데이터의 '질병'(치우친 타겟 변수)을 진단했습니다. 이번 시간에는 그 '치료제'를 투입하여, 한층 더 업그레이드된 전문가 수준의 워크플로우를 실행해 볼 겁니다. 이전과 달리, 특정 모델의 이름을 직접 지정하는 대신 최고의 모델을 자동으로 찾아 튜닝하고, PyCaret 최신 버전에 맞는 안정적인 옵션을 사용하여 코드의 재현성을 높이는 방법을 배웁니다. 이제 '돌아가는' 코드를 넘어, '언제 어디서든 잘 돌아가는' 코드를 작성해 봅시다!
transform_target_method='quantile'
파라미터를 사용하여 치우친 타겟 변수 문제를 안정적으로 해결할 수 있습니다.compare_models
의 결과를 변수에 저장하여, 최고 성능 모델을 하드코딩 없이 자동으로 선택하고 튜닝 파이프라인으로 연결할 수 있습니다.tune_model
전후의 성능을 홀드아웃(테스트) 데이터에서 직접 비교하여, 튜닝의 실질적인 효과를 검증할 수 있습니다.💡 [자동화 & 안정성 강화]: transform_target_method를 명시하고, compare_models의 결과를 변수로 받아 tune_model에 자동으로 연결합니다.
# 1. 라이브러리 준비
from pycaret.datasets import get_data
from pycaret.regression import setup, compare_models, tune_model, predict_model
# 2. 데이터 불러오기
insurance_df = get_data('insurance')
# 3. 회귀 실험 환경 설정 (타겟 변환 방법 명시!)
setup(
data=insurance_df, target='charges', session_id=123,
transform_target=True,
transform_target_method='quantile', # <-- v3.x 환경 안정성을 위해 'quantile' 지정
fold=10, fold_shuffle=True
)
# 4. 모든 회귀 모델 비교 후, 1등 모델을 자동으로 선택
best_model = compare_models(sort='R2')
# 5. 선택된 1등 모델을 자동으로 튜닝
tuned_best_model = tune_model(best_model, optimize='R2', n_iter=100, choose_better=True)
# 6. 홀드아웃 데이터로 튜닝 전/후 최종 성능 비교
print("\\n--- [Holdout] 튜닝 전 최종 성능 ---")
predict_model(best_model)
print("\\n--- [Holdout] 튜닝 후 최종 성능 ---")
predict_model(tuned_best_model)
setup()
실행 후 나타나는 정보 테이블Transform Target Method가 우리가 지정한 quantile로 설정된 것을 확인할 수 있습니다.
Description | Value | |
---|---|---|
... | ... | ... |
15 | Transform Target | True |
16 | Transform Target Method | quantile |
... | ... | ... |
23 | USI | f0c5 |
compare_models()
실행 결과이번 실행에서는 rf (Random Forest Regressor) 모델이 R² 기준 0.8352로 1등으로 선정되었습니다.