python - 在 sklearn 中持久化数据

标签 python machine-learning data-mining scikit-learn

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

任何帮助将不胜感激

最佳答案

这取决于你想做什么。

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

如果你想要用新数据进行聚类,你可能想使用新数据+旧数据的联合来重新训练整个管道,使向量化器的词汇表能够构建新的特征(维度)对于新词,让聚类算法找到更匹配完整数据集结构的聚类中心。

请注意,将来我们将提供哈希向量化器(例如,请参阅此 pull request on hashing transformers 作为第一个构建 block ),因此不再需要存储词汇表(但您将失去反省“特征维度的意义”)。

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

关于python - 在 sklearn 中持久化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141761/

相关文章:

python - 无法在阿里巴巴 EC 实例(Ubuntu 20.04.2)中安装 python 3.8.10 的 pytesseract

python - Pytorch和多项式线性回归问题

machine-learning - 用于练习线性或逻辑回归的工具或框架

python - 如何通过特定的字符串元素将字符串列表拆分为字符串子列表

python - 如何使用 python 的 bash 时间函数?

r - 对于 R 中的随机森林模型,predict() 函数和 model$predicted 有什么区别?

python - 我可以将所有 tensorflow slim 模型转换为 tflite 吗?

arrays - 寻找所有最大的序列

python - 是否可以通过 Python 进行 HTML 抓取和数据挖掘?

python - 使用语句和 python 线程