我正在使用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")
答案 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()
等,并在内部将其自动转换为相应的对象。