Я вижу, что моя модель keras плохо обрабатывает входные столбцы, если они не являются значениями с плавающей точкой.Я хотел бы иметь возможность обучать модель, используя столбцы, которые содержат «метки», а под метками я подразумеваю идентификаторы сортов или закодированные имена строк.В идеале было бы возможно интегрировать эти столбцы меток в свою модель, решая, какие значения в этих категориальных столбцах предопределяют более высокую точность.
Например, я пытаюсь предсказать результаты соревнования (Win = 1, Loss = 0), и я хотел бы включить «название команды» и «имя тренера» в исторические данные.В идеале модель должна определять, какие команды и тренеры с большей вероятностью выиграют.
Однако, когда я запускаю model.fit
, и training_set включает в себя что-то кроме значений int / float (которые являются статистическими по природе, а не категориальными), он генерирует одинаковую точность для каждой эпохи с очень высокой оценкой потерь.
Вот как я определил свою модель:
model = keras.Sequential([
keras.layers.Dense(1024, activation=tf.nn.relu, kernel_initializer=init_ru, bias_initializer=init_ru),
keras.layers.Dense(512, activation=tf.nn.relu, kernel_initializer=init_ru, bias_initializer=init_ru),
keras.layers.Dense(256, activation=tf.nn.relu),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dense(32, activation=tf.nn.relu),
keras.layers.Dense(1, activation=tf.nn.sigmoid)
])
opt = keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=True)
model.compile(optimizer=opt,
loss='binary_crossentropy',
metrics=['accuracy'])
Это прекрасно работает, если я не включаю какие-либо категориальныеданные, но я думаю, что если бы я мог заставить их работать с категориальными данными, это улучшилось бы еще больше.