<aside>

</aside>


📖 챕터 소개

14강에서 우리는 데이터의 '질병'(치우친 타겟 변수)을 진단했습니다. 이번 시간에는 그 '치료제'를 투입하여, 한층 더 업그레이드된 전문가 수준의 워크플로우를 실행해 볼 겁니다. 이전과 달리, 특정 모델의 이름을 직접 지정하는 대신 최고의 모델을 자동으로 찾아 튜닝하고, PyCaret 최신 버전에 맞는 안정적인 옵션을 사용하여 코드의 재현성을 높이는 방법을 배웁니다. 이제 '돌아가는' 코드를 넘어, '언제 어디서든 잘 돌아가는' 코드를 작성해 봅시다!


🎯 챕터 목표


💻 이번 챕터의 전체 코드 및 프로젝트 구조

이번 챕터의 핵심 코드 (v3.x 안정 버전)

💡 [자동화 & 안정성 강화]: 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등으로 선정되었습니다.