pns*_*lva 3 python machine-learning pickle scikit-learn
我想存储TF-IDF矩阵,所以我不必一直重新计算它.我正在使用scikit-learn's TfIdfVectorizer
.腌制它或将其存储在数据库中是否更有效?
一些上下文:我使用k-means聚类来提供文档推荐.由于经常添加新文档,我想存储文档的TF-IDF值,以便我可以重新计算集群.
Pickling(特别是使用joblib.dump)适用于短期存储,例如将部分结果保存在交互式会话中或将模型从开发服务器发送到生产服务器.
但是,酸洗格式取决于模型的类定义,这些定义可能会从一个版本的scikit-learn变为另一个版本.
如果您计划长时间保留模型并且可以在未来版本的scikit-learn中加载它,我建议编写您自己的独立实现持久性模型.
我还建议使用HDF5文件格式(例如在PyTables中使用)或其他数据库系统,它们有效地支持存储数值数组.
还要查看scipy.sparse的稀疏矩阵表示的内部CSR和COO数据结构,以便提供一种在数据库中存储这些数据的有效方法.