xgboost-强制训练的Booster对象由“ x”树/ boost“定义”

时间:2018-08-01 06:37:11

标签: python xgboost

假设我正在使用xgboost和以下命令来训练二进制分类模型:

import xgboost as xgb

dtrain = xgb.DMatrix(X_train, label=y_train, feature_names=feature_names)
dtest = xgb.DMatrix(X_test, label=y_test, feature_names=feature_names)

watchlist = [(dtrain, "trn"), (dtest, "tst")]
bst = xgb.train(params0, dtrain, num_boost_round=500,
                evals=watchlist, early_stopping_rounds=200)

然后,我将获得以下输出:

[0] trn-auc:0.917445    tst-auc:0.901041
...
[431]   trn-auc:0.979697    tst-auc:0.946273
Stopping. Best iteration:
[231]   trn-auc:0.975682    tst-auc:0.949634

现在bst拥有一个训练有素的Booster对象,该对象建立在431个增强器(树)上。我希望bst持有一个受过训练的Booster对象,该对象基于231个增强器而无需重新训练

我知道可以预测:

bst.predict(dtest, ntree_limit=bst.best_ntree_limit)

仅使用231棵树即可预测。但这还不够。我需要整个Booster对象,就像我只用231次迭代构建它一样。

0 个答案:

没有答案