ValueError: формы (4155,1445) и (4587,7) не выровнены: 1445 (тусклый 1)! = 4587 (тусклый 0) - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь предсказать с другим набором данных. Но все еще есть проблема с этим

Я пытался изменить параметры, но без разницы.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=77)
X_train.shape, X_test.shape, y_train.shape, y_test.shape

((15484, 4587), (3871, 4587), (15484,), (3871,))

nb = MultinomialNB(alpha=0.01)
mnb = nb.partial_fit(X_train, y_train, classes)

и затем я вызываю свой второй набор данных:

X_train3, X_test3, y_train3, y_test3 = train_test_split(X3, y3, test_size = 0.99999, random_state=77)
X_train3.shape, X_test3.shape, y_train3.shape, y_test3.shape

((0, 1445), (4155, 1445), (0,), (4155,))

y_pred=mnb.predict(X_test3)

ValueError: фигуры (4155,1445) и (4587,7) не выровнены: 1445 (дим 1)! = 4587 (дим 0)

Я ожидаю, что модель может предсказать из моего второго набора данных. Любая помощь приветствуется. ТКС!

1 Ответ

1 голос
/ 16 июня 2019

Посмотрите учебную документацию по научному комплекту для Multinomial NB .

Он четко определяет структуру входных данных, в то время как model.fit() должен соответствовать структуре входных данных во время тестирования или оценки model.predict().

Это означает, что вы не можете использовать одну и ту же модель для разных наборов данных. Это возможно только в том случае, если оба набора данных имеют одинаковые функции (такое же количество функций и в том же порядке, что и обучающий набор данных).

В вашем случае это не сработает, так как наборы данных отличаются, что видно из формы двух наборов данных.

Set 1 has 4587 features
Set 2 has 1445 features

Убедитесь, что оба набора данных имеют одинаковое количество функций и в том же порядке, что и обучающий набор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...