【发布时间】:2020-05-15 10:52:10
【问题描述】:
我正在尝试解决 Kaggle 上的泰坦尼克号竞赛。但模型准确率不会超过 80%。 我尝试更改一些隐藏节点、多个时期,还尝试应用批量标准化、dropout、更改权重初始化,但仍然是 80%。我究竟做错了什么? 这是我下面的代码:
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(10, input_shape=(5,), kernel_initializer='he_normal', activation='relu'))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.Dense(20, kernel_initializer='he_normal', activation='relu'))
model.add(tf.keras.layers.Dropout(0.3))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.Dense(2, kernel_initializer=tf.keras.initializers.GlorotNormal(), activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
train_scores = model.fit(train_features, train_labels, epochs=200, batch_size=64, verbose=2)
这里是最后几个时期的图片准确性:model accuracy
我该如何改进它?
【问题讨论】:
-
是什么让你觉得你做错了什么?解释为什么网络提供特定性能并不是真正的编程问题
-
考虑不同的模型架构。收集/生成更多数据。降低学习率。查看fastai 获取灵感。
-
代码似乎没问题。请考虑在机器学习论坛上发布问题。
-
您的标签是一次性编码的吗?
-
@desertnaut 是的
标签: python tensorflow machine-learning keras