7分钟
xgboost.train()
xgboost.train(): 使用给定的参数来训练一个booster
xgboost.train(params, dtrain, num_boost_round=10, evals=(), obj=None, feval=None,
maximize=False, early_stopping_rounds=None, evals_result=None, verbose_eval=True,
xgb_model=None, callbacks=None, learning_rates=None)- 参数:
params: 一个列表(元素为键值对)、一个字典,表示训练的参数dtrain:一个DMatrix对象,表示训练集num_boost_round: 一个整数,表示boosting迭代数量evals: 一个列表,元素为(DMatrix,string)。 它给出了训练期间的验证集,以及验证集的名字(从而区分验证集的评估结果)。obj:一个函数,它表示自定义的目标函数feval: 一个函数,它表示自定义的evaluation函数maximize: 一个布尔值。如果为True,则表示是对feval求最大值;否则为求最小值early_stopping_rounds:一个整数,表示早停参数。 如果在early_stopping_rounds个迭代步内,验证集的验证误差没有下降,则训练停止。- 该参数要求
evals参数至少包含一个验证集。如果evals参数包含了多个验证集,则使用最后的一个。 - 返回的模型是最后一次迭代的模型(而不是最佳的模型)。
- 如果早停发生,则模型拥有三个额外的字段:
.best_score: 最佳的分数.best_iteration: 最佳的迭代步数.best_ntree_limit: 最佳的子模型数量
- 该参数要求
evals_result: 一个字典,它给出了对测试集要进行评估的指标。verbose_eval: 一个布尔值或者整数。- 如果为
True,则evalutation metric将在每个boosting stage打印出来 - 如果为一个整数,则
evalutation metric将在每隔verbose_eval个boosting stage打印出来。另外最后一个boosting stage,以及早停的boosting stage的evalutation metric也会被打印
- 如果为
learning_rates: 一个列表,给出了每个迭代步的学习率。- 你可以让学习率进行衰减
xgb_model: 一个Booster实例,或者一个存储了xgboost模型的文件的文件名。它给出了待训练的模型。 这种做法允许连续训练。callbacks: 一个回调函数的列表,它给出了在每个迭代步结束之后需要调用的那些函数。 你可以使用xgboost中预定义的一些回调函数(位于xgboost.callback模块) 。如:xgboost.reset_learning_rate(custom_rates)
- 返回值:一个
Booster对象,表示训练好的模型
学员评价