fbpx

Несоответствие результатов нейронной сети

329 просмотра
0
0 Комментариев

Есть нейронная сеть определяющая тональность отзывов о фильмах(хороший/плохой). Использовал датасет imdb Для взвешивания терминов использовал TF-IDF. Тип сети — многослойный персептрон. Суть проблемы — на выходе сеть выдает точность 87% на тестовых данных. После работы сети я подал ту же тестовую выборку на уже обученную сеть для проверки результата и получил в итоге 9237 несоответствий, что почти 40%, но никак не 13. Откуда такое расхождение?
Модель сети:

Так проверяю результат:

В результате 9237 несоответствий.


Добавить комментарий

1 Ответы

Python Опубликовано 19.01.2019
0

После данных строк:

# convert texts to TF-IDF matrices
X_train = t.texts_to_matrix(X_train, mode='tfidf')
X_test = t.texts_to_matrix(X_test, mode='tfidf')

X_train, X_test — уже векторизированы и готовы к тому чтобы подавать их напрямую модели.

Что (главное зачем?) делает следующий код я не понимаю:

X1=X_test.values.tolist()
X2=y_test.values.tolist()
 
X3 = np.asarray(X2)
t.fit_on_texts(X1)
X = t.texts_to_matrix(X1, mode='tfidf')


Если скормить модели X_test без повторных преобразований, то точность модели будет ожидаемая:

# predict values
In [17]: pred = np.round(model.predict(X_test))
 
# flatten `pred` to 1D vector
In [18]: pred = pred.ravel()
 
# number of mistakes (wrong predictions)
In [19]: (pred != y_test).sum()
Out[19]: 3106
 
# model's accuracy
In [20]: (pred == y_test).mean()
Out[20]: 0.87576

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up