У меня есть некоторые теоретические вопросы наряду с моим первоначальным вопросом.
Я очень новичок в Керасе, и у меня возникли некоторые логические вопросы. Первый вопрос касается поезда, теста и т. Д.
Я пришел с использованием Sci-kit learn и обычно использую библиотеку test_train_split, чтобы сделать это (я предполагаю, что я могу сделать то же самое здесь?)
Мой следующий вопрос будет о трансформации функций и меток. Насколько я понимаю, мы не можем кормить строки
в нейронную сеть, так что нужно было бы сделать какую-то номализацию.
Я узнал либо токенизацию, либо фиктивные переменные для категориальных переменных, для числовых значений следует выполнить нормализацию. Мой вопрос с этим: есть 5 столбцов (2 категориальных и 3 числовых) в векторе признаков. Могу ли я создать фиктивные переменные для 2 категориальных, а затем нормализовать ВЕСЬ вектор признаков?
После этого мой вопрос будет в приведенном ниже коде о input_shape (x, y). Пример кода ниже от распознавания изображения. Скажите, что я хочу использовать свой собственный набор данных, должен ли я заранее знать input_shape и определять его таким образом? Или это то, чему модель может научиться сама?
Мой последний вопрос был бы таков: скажем, что вектор признаков состоит из переменных a, b, c и d. Как я могу сделать так, чтобы пользователь ввел их значения для a, b, c и d, и чтобы модель выдала вывод? В этом примере модель была загружена из CSV в информационный фрейм, а затем я плюнул эти данные в тестирование и обучение для функций и меток. В этом случае нужно ли хранить переменные пользователя в кадре данных, чтобы модель могла предсказать вывод?
Код, на который я ссылаюсь, предназначен для изображений, но мой вариант использования не будет изображением, а будет целым числом. Код:
from keras.datasets import mnist
from keras import models
from keras import layers
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
model = model.Sequential()
model.add(layers.Dense(16, activation = 'relu', input_shape = (10000,)))
model.add(layers.Dense(16, activation = 'relu'))
model.add(layers.Dense(1, activation = 'sigmoid'))
model.compile(optimizer= 'rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5, batch_size=64)
test_loss, test_acc = model.evaluate(test_images, test_labels)
Любая помощь будет великолепна, так как я новичок в этом!