用 pickle 和 joblib.dump 保存分类器的区别?

Difference between saving a classifier with pickle and joblib.dump?

当存储用 sklearn 训练的分类器时,我可以在 pickle(或 cPickle)和 joblib.dump() 之间进行选择。

使用 joblib.dump() 除了性能之外还有什么好处吗? pickle 保存的分类器是否会产生比 joblib 保存的分类器更差的结果?

他们实际上使用相同的协议(即 joblib 使用 pickle)。查看 documentation for joblib.dump - 您可以使用 joblib 的参数指定 pickle 压缩级别。

joblib 特别适用于 sklearn 使用的 NumPy 数组,因此根据您使用的分类器类型,使用 joblib 可能会带来性能和大小优势。

否则 pickle 确实可以正常工作,因此无论您使用哪个序列化库,保存经过训练的分类器并再次加载它都会产生相同的结果。另见 docs of sklearn on this topic.

请注意,joblib 包含在 sklearn 中。