将数据持久化在 sklearn 中



我正在使用scikit-learn来聚类文本文档。我正在使用类CountVectorizer,TfidfTransformer和MiniBatchKMeans来帮助我做到这一点。新的文本文档一直在添加到系统中,这意味着我需要使用上面的类来转换文本并预测聚类。我的问题是:我应该如何将数据存储在磁盘上?我应该简单地腌制矢量化器、转换器和 kmeans 对象吗?我应该只保存数据吗?如果是这样,如何将其添加回矢量化器、转换器和 kmeans 对象?

任何帮助将不胜感激

这取决于你想做什么。

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

如果你想要的是使用新数据

进行聚类分析,你可能希望使用新数据 + 旧数据的并集来重新训练整个管道,以使矢量化的词汇表能够为新单词构建新的特征(维度),并让聚类算法找到更匹配完整数据集结构的聚类中心。

请注意,将来我们将提供散列向量器(例如,请参阅散列转换器上的拉取请求作为第一个构建块),因此不再需要存储词汇表(但您将失去内省特征维度"含义"的能力)。

至于腌制模型与使用您自己的参数表示,我已经在您之前的问题中回答了这一部分: 持久化 Tf-Idf 数据

是的,我认为sk-learn的一般答案是腌制和祈祷。

在我看来,与不依赖于实现细节的记录序列化格式相比,这是非常脆弱的。 但也许他们知道这一点,并且不会对他们的类进行向后不兼容的更改?

相关内容

  • 没有找到相关文章