Должно быть model.fit(tf_train, y_train)
, затем model.predict(tf_test)
.
tf_idf_vectorizer = TfidfVectorizer(ngram_range=(2,2))
tf_train=tf_idf_vectorizer.fit_transform(X_train)
tf_test= tf_idf_vectorizer.transform(X_test)
model=LogisticRegression()
model.fit(tf_train, y_train)
y_predict=model.predict(tf_test)
Вы fit_tranform
преобразованные входы, т.е. tf_train
, и вы применяете model.predict
также к преобразованным тестовым входам, т.е. tf_test
.
Как здравый смысл, проверьте, выполните len(X_train)
, и вы должны получить 97624, затем len(X_test)
, и вы должны получить 11. Вот откуда эта ошибка:
ValueError: X имеет 97624 функций на выборку; ожидая 11
P / S: внимательно посмотрите на https://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html