在Python中使用基础API (即xgboost.train(args))训练和保存xgboost模型时,我们可以使用.save_model()保存参数:
import xgboost
model = xgboost.train(args) # Learning API
model.save_model(args)
loaded_model = xgboost.XGBRegressor() # Scikit-Learn API
loaded_model.load_model(args)
我们如何将这个经过训练的模型加载到中?我的目标是将一个经过训练的xgboost模型(使用Learning API训练)加载到xgboost Scikit-Learn API中作为一个合适的模型,这样我就可以利用其他sklearn函数。
我在上面的代码中包含的方法不能使加载的模型与其他sklearn函数一起工作,并且当我尝试在模型上使用其他sklearn函数时,我会得到一个NotFittedError。
下面是我正在使用的模型的Python API的链接:https://xgboost.readthedocs.io/en/latest/python/python_api.html
我正在使用'Learning API‘训练模型,并试图将模型加载到'Scikit-Learn API’中。
发布于 2021-07-14 18:57:34
假设您已经使用了scikit-learn
包的标准分类器或模型之一,则可以使用pickle
保存和加载模型
import pickle
model.train(X)
saved_model = pickle.dumps(model)
# Load the pickled model
loaded_model = pickle.loads(saved_model)
# Using the loaded model to predict new data
loaded_model.predict(X_test)
您还可以将saved_model
保存到任意文件中,然后加载它。
import pickle
model.train(X)
file_pi = open('model.obj', 'w')
pickle.dump(model, file_pi)
# Load the pickled model
filehandler = open(filename, 'r')
loaded_model = pickle.load(filehandler)
# Using the loaded model to predict new data
loaded_model.predict(X_test)
https://stackoverflow.com/questions/68383668
复制相似问题