【发布时间】:2020-06-04 04:34:30
【问题描述】:
导入模型并在单个输入上运行预测的代码
Tfidf_vect = TfidfVectorizer(max_features=5000) # Same classifier as I used in the model
Train_X_IP = Tfidf_vect.transform(["change in the meaning"]).toarray() #Passing the input
loaded_model = pickle.load(open("finalized_model.sav", 'rb')) #loading the model
predictions_SVM = loaded_model.predict_proba(Train_X_IP)
print(predictions_SVM)
Error I get : TfidfVectorizer - Vocabulary wasn't fitted.
我看到很多文章提出了很多方法,到目前为止我尝试过
添加 fit_transform 而不是 Tfidf_vect.transform 但这并没有解决问题
我尝试的第二个选项,外部加载 Tfidfvectorizer
Tfidf_vect = TfidfVectorizer(max_features=5000)
import pickle
pickle.dump(Tfidf_vect, open("vectorizer.pickle", "wb"))
multilabel_binarizer = joblib.load('vectorizer.pickle')
Still get the same error : TfidfVectorizer - Vocabulary wasn't fitted.
这是使用模型和矢量化器的正确方法吗? ?
【问题讨论】:
-
错误提示您需要先安装转换器,然后才能对新数据进行预测/转换。
标签: python machine-learning scikit-learn svm tfidfvectorizer