我有一个TfidfVectorizer
,它将文章集合矢量化,然后选择特性。
vectroizer = TfidfVectorizer()
X_train = vectroizer.fit_transform(corpus)
selector = SelectKBest(chi2, k = 5000 )
X_train_sel = selector.fit_transform(X_train, y_train)
现在,我想把它储存起来,并在其他程序中使用。我不想在训练数据集上重新运行TfidfVectorizer()
和功能选择器。我该怎么做?我知道如何使用joblib
使模型持久化,但我想知道这是否与使模型持久化相同。
下面是我使用joblib的答案:
稍后,我可以加载它并准备好:
“使对象持久化”基本上是指将存储在内存中的二进制代码转储到硬盘上的一个文件中,以便以后在程序或任何其他程序中可以将对象从硬盘上的文件重新加载到内存中。
scikit learn included
joblib
或stdlibpickle
和cPickle
都可以完成这项工作。 我更喜欢cPickle
,因为它明显更快。使用ipython's %timeit command:现在,如果要在一个文件中存储多个对象,可以轻松创建一个数据结构来存储它们,然后转储数据结构本身。这将与
tuple
、list
或dict
一起工作。 以你的问题为例:稍后或在另一个程序中,以下语句将在程序内存中恢复数据结构:
您可以简单地使用内置pickle库:
并加载:
Pickle将对象序列化到磁盘,并在需要时将它们重新加载到内存中
pickle lib docs
相关问题 更多 >
编程相关推荐