我正在使用 xgboost 库。我的系统每晚运行一个 cronjob,它从数据库中提取数据并训练模型。但是,我想一次又一次地删除模型的重新训练,并使用数据库中的任何新数据对其进行微调。在 sklearn 的实施(http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html)中,可以使用 warm_start 选项,那么 xgboost 呢?
我可以微调 xgboost 模型而不是重新训练它吗?
数据挖掘
机器学习
scikit-学习
xgboost
2021-09-30 13:48:53
3个回答
我看到在 xgboost 的当前版本的 python 包装器中,您可以在 train 函数中指定文件名或现有的 xgboost 模型(类 Booster)。
应该注意的是,XGBoost 会在假设它可以访问整个数据集的情况下进行最佳分割,因此您可能会通过更新而不是重新训练而失去一些预测能力(当然这可能值得减少计算成本)。
你可以通过参数来做到这一点xgb_model
。拆分是固定的,但休假值会由您的新训练数据更新。
您可以在原始数据之后使用新数据来增加树拆分。
这是一个最小的示例,如下所示,
gbm_t = xgb.train(params_t, xgb_train_t, num_boost_round = num_round, evals= watchlist_t, xgb_model=gbm)
其它你可能感兴趣的问题