xgboost.train 与 XGBClassifier

xgboost.train versus XGBClassifier

我正在使用 python 以增量方式(逐块)拟合 xgboost 模型。我遇到了一个使用 xgboost.train 的解决方案,但我不知道如何处理它 returns 的 Booster 对象。例如,XGBClassifier 有适合、预测、predict_proba 等选项。

这是我在数据中一点一点读取的 for 循环中发生的事情:

dtrain=xgb.DMatrix(X_train, label=y)
param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}
modelXG=xgb.train(param,dtrain,xgb_model='xgbmodel')
modelXG.save_model("xgbmodel")

我不完全确定你的问题是什么。 xgb.XGBMClassifier.fit() 在后台调用 xgb.train() 所以这是匹配我们相关函数参数的问题。

如果你对如何实现你心目中的学习感兴趣,那么你可以

clf = xgb.XGBClassifier(**params)
clf.fit(X, y, xgb_model=your_model)

documentation here。在每次迭代中,您必须使用 clf.get_booster().save_model(xxx).

之类的方式保存助推器

PS 我希望你以小批量的方式学习,即块而不是逐行学习,即逐个示例,因为这会导致性能下降 writing/reading每次的模型

XGBClassifierscikit-learn 兼容的 class,可以与其他 scikit-learn 实用程序结合使用。

除此之外,它只是 xgb.train 的包装器,您不需要在其中提供 Booster 等高级对象

只需将您的数据发送到 fit()predict() 等,它会在内部自动转换为适当的对象。