持久化Tf-Idf数据

我想存储TF-IDF矩阵,以便不必每次都重新计算。我使用的是scikit-learn的TfIdfVectorizer。是使用pickle保存它还是存储在数据库中更有效呢?

一些背景:我使用k-means聚类来提供文档推荐。由于经常添加新文档,我希望存储文档的TF-IDF值,以便重新计算聚类。


回答:

使用pickle(特别是使用joblib.dump)适合短期存储,例如在交互式会话中保存部分结果,或将模型从开发服务器传输到生产服务器。

然而,pickle格式依赖于模型的类定义,这些定义可能在不同版本的scikit-learn之间发生变化。

如果您计划长期保存模型,并希望在未来的scikit-learn版本中能够加载它,我建议您编写自己的独立于实现的持久化模型。

我还建议使用HDF5文件格式(例如在PyTables中使用)或其他支持高效存储数值数组的数据库系统。

另外,请查看scipy.sparse中用于稀疏矩阵表示的内部CSR和COO数据结构,以找到一种高效的方法将这些数据存储在数据库中。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注