Как я могу преобразовать y (целевые) данные со строками в удобную форму для искусственной нейронной сети с использованием керас? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь запустить искусственную нейронную сеть с двумя слоями, которые делят мой набор данных на одну из трех категорий, основанных на четырех независимых переменных.Набор данных target (y) в настоящее время представляет собой вектор, который включает одну из трех различных строк, например, «лимон», «банан», «апельсин».Из того, что я понимаю, мне нужно преобразовать данные в массив со строкой для каждого элемента и тремя двоичными столбцами, указывающими «да» или «нет» для каждого из трех фруктов.У меня возникают трудности с выполнением этого.

Я пробовал использовать следующую функцию

y_data = keras.utils.to_categorical(y_data)

, но я получаю ошибку ValueError: недопустимый литерал для int () с основанием 10:'lemon'

Я попытался сделать данные категориальными и перезапустить функцию, но ошибка та же.

Я также попытался создать библиотеку и назначить целочисленные значения через библиотеку, которую я затем выполнил бы через вышеуказанную функцию d = {1: 'lemon', 2: 'banana', 3: 'orange'} y_data = [d [k] для k в y_data]

но я получаю эту ошибку: KeyError:' lemon 'с ошибкой, определенной в y_data = [d [k] для k в y_data]

Я также попытался переставить строки в словаре, и я получил ту же ошибку ключа для того же слова.

Я также попытался сделать цикл, но снова получил ошибку ключа.

X_data = fruit.drop(columns=['Species'],axis=1)
y_data = fruit['Species']
#y_data = y_data.astype('category')
d = {1: "lemon", 2: "banana", 3: 'orange'}
y_data = [d[k] for k in y_data]

y_data = keras.utils.to_categorical(y_data)
...