Я работаю в LSTM проблеме . Я пытаюсь предсказать тип личности MBTI (тест Майерса-Бриггса) на основе текстовой классификации (есть 16 типов личности ).
У меня есть CSV-файл , который был предварительно обработан: Стоп-слова были удалены, он был лемматизирован, размечен, упорядочен и дополнен . Файл не имеет значений NaN, а текстовая последовательность имеет только целые числа .
Однако проблема возникает при попытке обучить полученную модель:
loss: nan - accuracy: 0.0000e+00 - val_loss: nan - val_accuracy: 0.0000e+00
По запросу: как выглядят данные и метки x, y с результатами
print(validation_label_seq)
[[ 5]
[10]
[ 4]
[ 4]
[15]
[12]
[ 1]...]
print(validation_padded[0])
maxlen = 240
array([ 23, 353, 147, 677, 1, 1, 409, 10, 845, 1530, 1,
103, 107, 998, 117, 1389, 25, 1, 28, 1889, 165, 1,
1520, 49, 718, 65, 55, 34, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...], dtype=int32)
print(train_label_seq)
[[ 8]
[ 9]
[ 3]
[ 7]
[ 4]
[10]
[15]
[11]...]
print(train_data_padded[0])
maxlen = 240
array([ 19, 301, 133, 302, 562, 133, 28, 563, 895, 896, 897, 118, 99,
564, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...], dtype=int32)
results = model.evaluate(validation_padded, validation_label_seq)
test = validation_padded[10]
predict = model.predict_classes([test])
print(predict[1])
59/59 [==============================] - 0s 1ms/sample - loss: nan - accuracy: 0.0000e+00
[0]
/tensorflow-2.1.0/python3.6/tensorflow_core/python/keras/engine/sequential.py:342: RuntimeWarning: invalid value encountered in greater
return (proba > 0.5).astype('int32')
print(predict)
array([[0],
[0],
...
[0],
[0]], dtype=int32)
Что я пробовал?
- Я уже пытался перейти на другие оптимизаторы
- Уменьшить размер пакета
- Проверить ошибки значений в кадре данных и в последовательности (данные поезда и проверки).
Ожидаемый результат: Возможно, я неправильно строю модель, поэтому я объясню, какая из них является основной. Я хотел бы получить один выход или шестнадцать выходов, которые определяют точность вашего типа личности.
1 output:
INTP: 89%
16 outputs:
ENTP: 5% | INTP: 81% | INTJ: 1% | ...
Если вы хотите проверить, вот код: mbti personal
Фрейм данных: mbti_df
Будут рассмотрены любые предложения по улучшению вопроса