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

Posted

技术标签:

【中文标题】sklearn如何使用保存的模型来预测新数据【英文标题】:sklearn how to use saved model to predict new data 【发布时间】:2020-09-19 13:33:55 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您需要保存模型和 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)

【讨论】:

以上是关于sklearn如何使用保存的模型来预测新数据的主要内容,如果未能解决你的问题,请参考以下文章

使用保存的 sklearn 模型进行预测

(sklearn)机器学习模型的保存与加载

加载和预测新数据 sklearn

如何使用 sklearn 从决策树模型中提高预测的准确性?

如何在 Python 中使用 sklearn 对模型进行单一预测?

标准化训练数据后使用 sklearn 预测新数据