5

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

任何帮助将不胜感激

4

2 回答 2

6

这取决于你想做什么。

如果您想在训练集上找到一些固定的集群中心,然后稍后重新使用它们来计算新数据的集群分配,然后对模型进行酸洗(或者只是保存矢量化器的词汇表和其他模型构造函数参数和集群中心职位)是好的。

如果您想要使用新数据进行聚类,您可能希望使用新数据 + 旧数据的联合重新训练整个管道,以使矢量化器的词汇可以为新数据构建新特征(维度)词,并让聚类算法找到与完整数据集结构更好匹配的聚类中心。

请注意,将来我们将提供散列矢量化器(例如,请参阅关于散列转换器的拉取请求作为第一个构建块),因此不再需要存储词汇表(但您将失去自省“含义”的能力”的特征尺寸)。

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

于 2012-06-22T14:31:16.147 回答
4

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

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

于 2012-06-21T19:21:07.160 回答