保存sklearn模型的一种方法是使用joblib.dump(model,filename)
。我对文件名参数感到困惑。运行此函数的一种方法是:
joblib.dump(model,"model.joblib")
这将成功保存模型,并且使用:
正确加载模型model=joblib.load("model.joblib")
另一种方法是:
joblib.dump(model,"model")
没有". jobblib"这次是延期。这也会成功运行,并且使用:
正确加载模型model=joblib.load("model")
让我困惑的是文件名中的文件扩展名,我应该使用某个文件扩展名来保存模型吗?或者不需要像上面那样使用文件扩展名?如果没有必要,那为什么呢?
没有必须"用于序列化模型。您可以通过使用支持的文件名扩展名之一(.z
,.gz
,.bz2
,.xz
或.lzma
)来指定压缩方法。默认情况下,joblib
将使用zlib
来序列化对象。
因此您可以使用任何文件扩展名。然而,使用库作为扩展是一个很好的做法,以便知道如何加载它。
我使用pickle
库时将我的序列化模型命名为model.pickle
,使用joblib
时将其命名为model.joblib
。