一个基于在订购后是否以及以何种准确性/概率完成 uber 乘车的练习题具有以下特征:
Available Drivers int64
Placed Time float64
Response Distance float64
Car Type int32
Day Of Week int64
Response Delay float64
Order Completion int32 [target]
我的方法是使用 tf.Keras Sequential 来预测目标。这是它的样子:
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(16, activation='relu', input_shape=input_shape),
tf.keras.layers.Dense(16, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(1, activation='sigmoid')
])
adam_optimizer = tf.keras.optimizers.Adam(learning_rate=LEARNING_RATE)
binary_crossentropy_loss = tf.keras.losses.BinaryCrossentropy()
model.compile(optimizer=adam_optimizer,
loss=binary_crossentropy_loss,
metrics=['accuracy'])
early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=ES_PATIENCE)
history = model.fit(train_dataset, validation_data=validation_dataset, epochs=EPOCHS, verbose=2,
callbacks=[early_stop])
我像这样规范化数据(注意 train_data 是一个数据框):
train_data = tf.keras.utils.normalize(train_data)
然后进行预测,
predictions = model.predict_proba(prediction_dataset, batch_size=None)
训练结果:
loss: 0.3506 - accuracy: 0.8817 - val_loss: 0.3493 - val_accuracy: 0.8773
但这仍然给了我相应发生的低质量概率。这是错误的方法吗?
对于这样的问题,你会建议什么方法,我做错了吗?对于这个解决方案,神经网络是不是一个坏主意?非常感谢!