我正在使用python来逐步适应xgboost模型(逐块)。我遇到了一个使用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")发布于 2018-05-04 07:11:48
XGBClassifier是一个与scikit-learn兼容的类,可以与其他scikit学习实用程序一起使用。
除此之外,它只是xgb.train的一个包装器,在这个包装中,您不需要提供高级对象,比如Booster等等。
只需将数据发送到fit()、predict()等,内部就会自动转换为适当的对象。
发布于 2018-05-04 07:08:13
我不完全确定你的问题是什么。xgb.XGBMClassifier.fit()在幕后调用xgb.train(),所以这是一个匹配相关函数的参数的问题。
如果您对如何实现您心中的学习感兴趣,那么您可以这样做。
clf = xgb.XGBClassifier(**params)
clf.fit(X, y, xgb_model=your_model)见这里的文件。在每次迭代中,您都必须使用类似于clf.get_booster().save_model(xxx)的东西来保存助推器。
我希望你在小批次中学习,也就是小块,而不是一行行,即逐例学习,因为每次写/读模型会导致性能下降。
https://stackoverflow.com/questions/50163393
复制相似问题