sklearn如何使用保存的模型来预测新数据

问题描述 投票:0回答:1

我使用sklearn训练了一个SVM文本分类器,并使用tf-idf(TfidfVectorizer)提取了特征。现在,我需要保存模型并加载它,以预测看不见的文本。我将模型加载到另一个文件中,令我困惑的是如何提取新文本tf-idf功能

machine-learning scikit-learn svm text-classification
1个回答
0
投票

您需要保存模型和tfidf变压器。您可以分别保存它们,也可以创建两者的管道并保存管道(这是首选)。

示例:

from sklearn.linear_model import LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.pipeline import Pipeline
import pickle

Tfidf = TfidfVectorizer()
LR = LogisticRegression()
pipe = Pipeline([("Tfidf", Tfidf), ("LR", LR)])
pipe.fit(X, y)

with open('pipe.pickle', 'wb') as picklefile:
    pickle.dump(pipe, picklefile)

然后您可以加载整个管道,在predict上将首先应用矢量化器,然后将其传递给模型:

with open('pipe.pickle', 'rb') as picklefile:
    saved_pipe = pickle.load(picklefile)

saved_pipe.predict(X_test)
© www.soinside.com 2019 - 2024. All rights reserved.