Я бы порекомендовал вам использовать Keras для этой проблемы. Вся обработка данных, которую вы выполняли с использованием sklearn после разделения данных обучения и тестирования, могла бы быть выполнена с кумулятивным отношением к керам, и было бы более читабельным и менее запутанным, чтобы знать, что происходит. Если они все строки, вы должны разделить данные на строки с помощью внутреннего кода Python, например
row = data[i].split(',')
разделит три столбца в строке.
Если вы знаете 5 классов, я бы взял все классы и заменил их имена числами в наборе данных. Я никогда не использовал Sklearn для реализации нейронной сети, но, похоже, вы использовали 25 скрытых NN-слоев, верно? Я не думаю, что вам это тоже понадобится ... думаю, что 3 сделают эту работу.
Извините, если я не могу помочь вам более точно в вашей проблеме, но я думаю, что вы можете решить свою проблему проще, если вы переделаете ее, как я сказал ... удачи, приятель!
edit: Возможно, проблема не в разобранном наборе данных, а в реализации NN, поэтому я думаю, что Keras более ясен