当存储用sklearn训练的分类器时,我可以在pickle(或cPickle)和joblib.dump()之间进行选择。
除了性能之外,使用 joblib.dump() 还有什么好处吗?用泡菜保存的分类器会产生比用 joblib 保存的分类器更差的结果吗?
它们实际上使用相同的协议(即 joblib 使用 pickle)。查看joblib.dump
的文档 - 您可以使用 joblib 的参数指定 pickle 压缩级别。
joblib 特别适用于 sklearn 使用的 NumPy 数组,因此根据您使用的分类器类型,使用 joblib 可能会获得性能和大小优势。
否则,pickle 确实可以正常工作,因此无论您使用哪个序列化库,保存经过训练的分类器并再次加载它都会产生相同的结果。另请参阅sklearn关于此主题的文档。
请注意,joblib 包含在 sklearn 中。