如何最好地保存sklearn模型?

7

我正在开发一款Python桌面应用程序,它涉及到一些预测。目前,我使用Python脚本训练我的sklearn模型,并将模型的参数保存为一个yaml文件中的字典。然后,我在我的Python应用程序中构建该yaml文件。在使用应用程序时,根据字典中的参数重新创建模型。但我发现,当其他人使用不同版本的sklearn时,会出现错误。我尝试将模型保存在pickle文件中,但在使用不同版本sklearn的机器上运行应用程序时,会产生一些警告。

3个回答

4

不能保证某个sklearn模型在不同版本的sklearn之间是兼容的。实际上,实现或内部API可能会在不同版本之间发生更改。请查看此处获取更多信息。

如果你考虑使用一个版本,则最好的方法确实是将其pickle,而不是将参数保存在yaml文件中。最好使用joblib来做到这一点。请查看此处获取更多信息。


4

我意识到,拥有不同版本的sklearn的人会遇到错误。

在这种情况下,请使用virtualenvs创建隔离的Python环境。


0

或者您可以从训练好的模型中生成Python代码。这样,您就可以消除任何对象不兼容的可能性。这里有一个工具可以帮助您 https://github.com/BayesWitnesses/m2cgen


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接