매개변수 설정
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
'Learning-driven Methodology > ML (Machine Learning)' 카테고리의 다른 글
[Machine Learning] MLOps (0) | 2022.05.11 |
---|---|
[XGBoost] Python Package Introduction (3) (0) | 2022.05.09 |
[XGBoost] Python Package Introduction (1) (0) | 2022.05.09 |
[XGBoost] 트리 부스팅 (Tree Boosting) (2) (0) | 2022.05.06 |
[XGBoost] 트리 부스팅 (Tree Boosting) (1) (0) | 2022.05.06 |