首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将经过训练的xgboost基模型参数加载到xgboost中?

如何将经过训练的xgboost基模型参数加载到xgboost中?
EN

Stack Overflow用户
提问于 2021-07-15 02:51:45
回答 1查看 163关注 0票数 0

在Python中使用基础API (即xgboost.train(args))训练和保存xgboost模型时,我们可以使用.save_model()保存参数:

代码语言:javascript
运行
复制
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’中。

EN

回答 1

Stack Overflow用户

发布于 2021-07-15 02:57:34

假设您已经使用了scikit-learn包的标准分类器或模型之一,则可以使用pickle保存和加载模型

代码语言:javascript
运行
复制
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保存到任意文件中,然后加载它。

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68383668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档