Python 为什么神经网络的精确度停止增加
我想解决卡格尔号上的泰坦尼克号比赛。但是模型的准确率并没有超过80%。 我试图改变一些隐藏节点,一些时代,也试图应用批处理规范化,退出,改变权重初始化,但同样有80%。我做错了什么? 下面是我的代码:Python 为什么神经网络的精确度停止增加,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我想解决卡格尔号上的泰坦尼克号比赛。但是模型的准确率并没有超过80%。 我试图改变一些隐藏节点,一些时代,也试图应用批处理规范化,退出,改变权重初始化,但同样有80%。我做错了什么? 下面是我的代码: model = tf.keras.models.Sequential() model.add(tf.keras.layers.Dense(10, input_shape=(5,), kernel_initializer='he_normal', activation='relu')) model.
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)
以下是过去几个时代的图片准确性:
如何改进它?您可以尝试对数据进行归一化,通常在实施神经网络时,我们不需要对数据进行归一化(如果网络很深),但因为这里我们只处理3层,所以我想对数据进行归一化可能会有所帮助 我建议将您的培训数据再次拆分为培训和验证集,并使用K-fold交叉验证(我不确定这一点!!我在这个领域也是新手)
但总的来说,我已经看到,如果精度是恒定的,那么最好的方法是改变训练数据(我的意思是使其正常化或尝试用平均值输入NaN值(而不是将值设置为0))。什么让你认为你做错了什么?解释为什么一个网络会提供一些特定的性能并不是一个真正的编程问题,而是一个不同的模型架构。收集/生成更多数据。降低学习速度。看看有没有灵感。代码似乎很好。请考虑在一个机器学习论坛上发布这个问题。你的标签是热编码的吗?@