메인 콘텐츠로 건너뛰기
wandb 라이브러리에는 XGBoost로 트레이닝할 때 메트릭, 설정, 저장된 부스터를 로깅하는 WandbCallback 콜백이 있습니다. 여기에서 XGBoost WandbCallback의 출력이 표시된 실시간 W&B 대시보드를 확인할 수 있습니다.
XGBoost를 사용한 W&B 대시보드

시작하기

XGBoost 메트릭, 설정, 부스터 모델은 WandbCallback을 XGBoost에 전달하기만 하면 W&B에 손쉽게 로깅할 수 있습니다:
from wandb.integration.xgboost import WandbCallback
import xgboost as XGBClassifier

...
# wandb run 시작
with wandb.init() as run:
  # 모델에 WandbCallback 전달
  bst = XGBClassifier()
  bst.fit(X_train, y_train, callbacks=[WandbCallback(log_model=True)])
XGBoost와 W&B에서의 로깅을 자세히 살펴보려면 이 노트북을 열어보세요.

WandbCallback 레퍼런스

기능

WandbCallback을 XGBoost 모델에 전달하면 다음 작업이 수행됩니다.
  • 부스터 모델 설정을 W&B에 로깅합니다
  • rmse, accuracy 등 XGBoost가 수집한 평가 메트릭을 W&B에 로깅합니다
  • XGBoost가 수집한 트레이닝 메트릭을 로깅합니다 (eval_set에 데이터를 제공한 경우)
  • 최고 score와 최적 iteration을 로깅합니다
  • 트레이닝된 모델을 W&B Artifacts에 저장하고 업로드합니다 (log_model = True인 경우)
  • log_feature_importance=True일 때 특성 중요도 플롯을 로깅합니다(기본값).
  • define_metric=True일 때 최상의 eval metric을 wandb.Run.summary에 저장합니다(기본값).

인수

  • log_model: (boolean) True이면 모델을 W&B Artifacts에 저장하고 업로드합니다.
  • log_feature_importance: (boolean) True이면 특성 중요도 막대 그래프를 기록합니다.
  • importance_type: (str) 트리 모델의 경우 {weight, gain, cover, total_gain, total_cover} 중 하나입니다. 선형 모델의 경우 weight입니다.
  • define_metric: (boolean) True이면(기본값) 트레이닝의 마지막 step이 아니라 최적 step에서의 모델 performance를 run.summary에 기록합니다.
WandbCallback의 소스 코드를 검토할 수 있습니다. 추가 예시는 GitHub의 예제 저장소에서 확인하세요.

Sweeps로 하이퍼파라미터 조정하기

모델의 성능을 최대한 끌어올리려면 트리 깊이와 학습률 같은 하이퍼파라미터를 조정해야 합니다. W&B Sweeps는 대규모 하이퍼파라미터 테스트 실험을 설정하고, 조율하고, 분석할 수 있는 강력한 도구입니다. XGBoost & Sweeps Python 스크립트도 사용해 보세요.
XGBoost 성능 비교