machine-learning - sklearn如何使用保存的模型来预测新数据
问题描述
我使用 sklearn 训练了一个 SVM 文本分类器,使用 tf-idf(TfidfVectorizer) 来提取特征。现在我需要保存模型并加载它来预测看不见的文本。我将模型加载到另一个文件中,让我感到困惑的是如何提取新的文本 tf-idf 特征
解决方案
您需要保存模型和 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)
推荐阅读
- r - 无法使用 R download.file 和下载功能下载 html 文件
- python - 模型中具有不同名称的Django模型属性和数据库字段
- typescript - 处理泛型 T 和函数的联合类型时出现错误 2349
- node.js - 安装 Cordova 时收到警告
- amazon-web-services - 使用 IAM 用户 SSH 连接到 Ec2 实例
- ios - 在 Apple Music 上使用最近播放的歌曲端点
- c# - 无法将类型 WebApplication1.Add.ClassName[] 隐式转换为 int []
- java - JavaFX:绑定不适用于包含的 FXML
- json - 现有类型的 JSON 版本的实用程序类型?JSON
- javascript - 检查具有嵌套对象数组的对象的属性