加载xgboost模型返回NoneType

问题描述 投票:0回答:2

我在加载 xgboost 模型时遇到问题。 当我使用

model.save_model("xgbt.bin")
保存 xgboost 模型并尝试通过以下代码加载它时:
load_model=xgboost.Booster.load_model("xgbt.bin")
然后我通过这个打印 load_model 的类型
print(type(load_model))
打印出来了

当我尝试时

prediction=load_model.predict(api_data)
我发生了这个错误: AttributeError:“NoneType”对象没有属性“predict”

python machine-learning save load xgboost
2个回答
4
投票

XGBoost 框架将模型直接存储到 XGBoost 对象。函数

load_model
本身返回打印的 NoneType 对象:

def load_model(self, fname: Union[str, bytearray, os.PathLike]) -> None

加载模型,如下图,会正确返回你想要的对象:

import xgboost as xgb

xgb_model = xgb.Booster()
xgb_model.load_model(path_to_file)

现在您可以像平常一样预测:

predicted_values = xgb_model.predict(validation_data)

0
投票

@JCZwiggelaar 正确地将实例化对象和加载模型的行分开

model = xgb.Booster()

model.load_model(filename)

© www.soinside.com 2019 - 2024. All rights reserved.