使用PyCaret加载模型调用predict_model时遇prep_pipe未定义错误
解决PyCaret 2.3.10中predict_model报NameError: 'prep_pipe'未定义的问题
这个错误是因为PyCaret 2.x版本里,预处理管道prep_pipe是绑定在训练好的模型对象内部的,并非全局变量,直接调用predict_model时如果没关联正确的模型实例就会出问题。解决方法如下:
正确加载完整模型:训练时必须用
save_model()函数保存模型(会自动把预处理管道和模型打包),加载时用load_model()读取完整模型文件:from pycaret.classification import load_model, predict_model # 加载保存的完整模型(包含预处理管道) loaded_model = load_model("your_saved_model")用加载后的模型调用predict_model:直接将加载好的模型对象传入
predict_model,同时指定待预测的数据:# 对测试数据进行预测 predictions = predict_model(loaded_model, data=test_data)排查常见错误点:
- 确认训练时是用
save_model()而非手动单独保存模型(比如用pickle单独存模型,会丢失预处理管道) - 加载模型时路径正确,确保模型文件完整
- 确认训练时是用
内容的提问来源于stack exchange,提问作者Geetika Chadha
相关产品推荐
相关产品推荐

