Предсказанный массив имеет странную форму - PullRequest
1 голос
/ 08 января 2020

Набор данных содержит 3 столбца: комментарий, parent_comment и метка (0 или 1). Я пытаюсь предсказать метку для y_test, но у меня ошибка

Found input variables with inconsistent numbers of samples: [2, 758079]

Каким-то образом форма y_predict равна (2,0). Почему это и как это исправить?

Когда я делаю

y_test = y_test_["comment"]

все нормально.

По какой-то причине y_predict имеет форму (2,), в то время как y_true имеет нормальную форму (252694,)

enter image description here

x_train, y_test_ = train_test_split(df1, random_state=17)
y_test = y_test_[["comment", "parent_comment"]]
y_true = y_test_["label"]

tf_idf = TfidfVectorizer(stop_words = 'english', ngram_range=(1, 2), max_features=700000, min_df=0.01)
# multinomial logistic regression a.k.a softmax classifier
logit = LogisticRegression(C=1, n_jobs=4, solver='lbfgs', 
                           random_state=17, verbose=1)
# sklearn's pipeline
tfidf_logit_pipeline = Pipeline([('tf_idf', tf_idf), 
                                 ('logit', logit)])

tfidf_logit_pipeline.fit(x_train[['comment',"parent_comment"]], x_train["label"])
y_predict = tfidf_logit_pipeline.predict(y_test)

accuracy_score(y_predict, y_true)

1 Ответ

1 голос
/ 08 января 2020

Я думаю, что проблема в вашем поезде / тест-сплите, который здесь не опубликован. Если вы проверите это: https://datascience.stackexchange.com/questions/20199/train-test-split-error-found-input-variables-with-inconsistent-numbers-of-sam, вам нужно иметь одинаковую длину X и Y для разделения.

Проверка на это:

X.shape 
Y.shape

Следуйте посту, чтобы удалить ошибку: o исправить эту ошибку:

  1. Удалить дополнительный список из внутри np.array() при определении X или последующем удалении дополнительного измерения с помощью следующей команды: X = X.reshape(X.shape[1:]).
  2. Транспонировать X, запустив X = X.transpose(), чтобы получить равное количество образцов в X и Y.

Обновление: С вашим последним комментарием: Проверьте форму y_predict, y_true это, вероятно, не соответствует

...