본문 바로가기
Learning-driven Methodology/ML (Machine Learning)

[XGBoost] Python Package Introduction (2)

by goatlab 2022. 5. 9.
728x90
반응형
SMALL

매개변수 설정

 

XGBoost는 쌍 목록이나 사전을 사용하여 매개변수를 설정할 수 있다.

 

1. Booster parameters

 

param = {'max_depth': 2, 'eta': 1, 'objective': 'binary:logistic'}
param['nthread'] = 4
param['eval_metric'] = 'auc'

 

2. 여러 평가 지표를 지정할 수도 있다.

 

param['eval_metric'] = ['auc', 'ams@0']

# alternatively:
# plst = param.items()
# plst += [('eval_metric', 'ams@0')]

 

3. 성능을 관찰하도록 설정된 유효성 검사 지정

 

evallist = [(dtest, 'eval'), (dtrain, 'train')]

 

Training

 

모델을 훈련하려면 매개변수 목록과 데이터 세트가 필요하다.

 

num_round = 10
bst = xgb.train(param, dtrain, num_round, evallist)

 

훈련 후 모델을 저장할 수 있다.

 

bst.save_model('0001.model')

 

모델과 해당 기능 맵을 텍스트 파일로 dump할 수도 있다.

 

# dump model
bst.dump_model('dump.raw.txt')
# dump model with feature map
bst.dump_model('dump.raw.txt', 'featmap.txt')

 

저장된 모델은 다음과 같이 로드할 수 있다.

 

bst = xgb.Booster({'nthread': 4})  # init model
bst.load_model('model.bin')  # load data

 

xgboost.Booster 의 업데이트  부스트  포함한 메서드 는 내부 사용을 위해 설계되었다. 래퍼 함수 xgboost.train 은 캐시 및 기타 매개변수 설정을 포함하여 일부 사전 구성을 수행한다.

 

Early Stopping

 

검증 세트가 있는 경우 조기 중지를 사용하여 최적의 부스팅 라운드 수를 찾을 수 있습니다. 조기 중지는 에 최소 한 세트가 필요합니다 evals. 둘 이상이면 마지막을 사용합니다.

 

train(..., evals=evals, early_stopping_rounds=10)

 

모델은 검증 점수 개선이 멈출 때까지 학습한다. early_stopping_rounds 훈련을 계속 하려면 유효성 검사 오류가 최소한 매 번 감소해야 한다.

 

조기 중지가 발생하면 모델에는 두 개의 추가 필드가 있다. bst.best_score, bst.best_iteration. xgboost.train() 가장 좋은 것이 아니라 마지막 반복에서 모델을 반환한다.

 

이는 최소화 (RMSE, 로그 손실 등) 및 최대화 (MAP, NDCG, AUC)를 위한 두 측정항목 모두에서 작동한다. 둘 이상의 평가 메트릭을 지정하는 경우 마지막 하나 param['eval_metric']가 조기 중지에 사용된다.

 

https://xgboost.readthedocs.io/en/stable/python/python_intro.html

 

Python Package Introduction — xgboost 1.6.0 documentation

© Copyright 2021, xgboost developers. Revision f75c007f.

xgboost.readthedocs.io

 

728x90
반응형
LIST