在sklearn中持久化数据

我正在使用scikit-learn来对文本文档进行聚类。我使用了CountVectorizer、TfidfTransformer和MiniBatchKMeans这些类来帮助我完成这项工作。系统中不断添加新的文本文档,这意味着我需要使用上述类来转换文本并预测聚类。我的问题是:我应该如何将数据存储到磁盘上?我应该简单地将vectorizer、transformer和kmeans对象进行pickle处理吗?我应该只保存数据吗?如果是的话,我如何将数据重新添加到vectorizer、transformer和kmeans对象中?

任何帮助都将不胜感激


回答:

这取决于你想要做什么。

如果你想在训练集上找到一些固定的聚类中心,然后稍后重用它们来计算新数据的聚类分配,那么pickle模型(或者只保存vectorizer的词汇表和其他模型构造参数以及聚类中心位置)是可以的。

如果你想要使用新数据进行聚类,你可能需要使用新数据和旧数据的联合来重新训练整个流程,使得vectorizer的词汇表能够为新词构建新的特征(维度),并让聚类算法找到更符合完整数据集结构的聚类中心。

请注意,未来我们将提供哈希向量化器(例如,参见这个关于哈希变换器的拉取请求作为第一个构建块),因此存储词汇表将不再必要(但你将失去对特征维度“含义”进行内省的能力)。

关于pickle模型与使用你自己的参数表示,我已经在你之前的问题中回答了这一部分,这里是链接:Persist Tf-Idf data

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中创建了一个多类分类项目。该项目可以对…

发表回复

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