xgboost.train与XGBClassifier

时间:2018-05-03 20:30:16

标签: python scikit-learn xgboost

我正在使用python逐步适应xgboost模型(chunk by chunk)。我遇到了一个使用xgboost.train的解决方案,但我不知道如何处理它返回的Booster对象。例如,XGBClassifier具有fit,predict,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")

2 个答案:

答案 0 :(得分:2)

我不完全确定你的问题是什么。引擎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我希望你学习小批量学习,即大块而不是逐字逐句,即逐个例子,因为每次写入/读取模型会导致性能下降

答案 1 :(得分:2)

XGBClassifier是一个scikit-learn兼容类,可以与其他scikit-learn实用程序一起使用。

除此之外,它只是xgb.train上的一个包装器,您不需要提供Booster等高级对象。

只需将您的数据发送至fit()predict()等,并在内部将其自动转换为相应的对象。