У меня есть набор данных, содержащий столбцы 'studentDetails' и 'studentId'.Я натренировал свою модель на этом наборе данных и сохранил ее.Когда я тренирую модель и сохраняю обученную модель, а затем загружаю обученную модель для прогнозирования, она успешно дает мне результат.Но когда я загружаю сохраненную модель в автономном режиме и прогнозирую, используя ее, она выдает мне сообщение «CountVectorizer - Vocabulary не установлен»
Вот код, который я использую:
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
import pickle
from sklearn.svm import LinearSVC
X_train, X_test, y_train, y_test = train_test_split(df['studentDetails'], df['studentId'], random_state = 0)
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(X_train)
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
classificationModel = LinearSVC().fit(X_train_tfidf, y_train)
filename = 'finalized_model.sav'
pickle.dump(classificationModel, open(filename, 'wb'))
Теперь загружаем модель и прогнозируем:
from sklearn.feature_extraction.text import CountVectorizer
data_to_be_predicted="Alicia Scott is from United States"
filename = 'finalized_model.sav'
loaded_model = pickle.load(open(filename, 'rb'))
count_vect = CountVectorizer()
result = loaded_model.predict(count_vect.transform([data_to_be_predicted]))
print(result)
вывод:
94120
Когда я запускаю только второй фрагмент кода, он выдает ошибку
ошибка:
CountVectorizer - Vocabulary wasn't fitted
Мне просто интересно, почему я получаю ошибку во втором случае, потому что я не переопределяю count_vect = CountVectorizer () где-либо в первом случае, когда я получаюправильный результат.