小编Xim*_*imz的帖子

神经网络验证的准确性有时不会改变

我正在使用神经网络解决二进制分类问题,但遇到了一些麻烦。有时,在运行模型时,我的验证准确性根本不会改变,而有时效果很好。我的数据集有1200个具有28个特征的样本,我有一个类不平衡(200个类,一个1000个类,b类)。我所有的特征都已归一化,介于1到0之间。正如我之前所说,这个问题并不总是发生,但我想知道为什么并修复它

我曾尝试更改优化功能和激活功能,但这对我没有好处。我还注意到,当我增加网络中神经元的数量时,这个问题发生的频率降低了,但是并没有解决,我也尝试增加了时期的数量,但是有时候这个问题仍然存在

model = Sequential()
model.add(Dense(28, input_dim=28,kernel_initializer='normal', activation='sigmoid'))
model.add(Dense(200, kernel_initializer='normal',activation='sigmoid')) 
model.add(Dropout(0.5))
model.add(Dense(300, kernel_initializer='normal',activation='sigmoid')) 
model.add(Dropout(0.5))
model.add(Dense(300, kernel_initializer='normal',activation='sigmoid')) 
model.add(Dropout(0.5))
model.add(Dense(150, kernel_initializer='normal',activation='sigmoid')) 
model.add(Dropout(0.4))
model.add(Dense(1,kernel_initializer='normal'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
history = model.fit(X_train, y_train,
                    epochs=34,
                    batch_size=32,
                    validation_data=(X_val, y_val),
                    verbose=1)
Run Code Online (Sandbox Code Playgroud)

这是有时候训练模型会得到的结果

Epoch 1/34
788/788 [==============================] - 1s 2ms/step - loss: 1.5705 - acc: 0.6865 - val_loss: 0.6346 - val_acc: 0.7783
Epoch 2/34
788/788 [==============================] - 0s 211us/step - loss: 1.0262 - acc: 0.6231 - val_loss: 0.5310 - val_acc: 0.7783
Epoch 3/34
788/788 [==============================] - 0s 194us/step - loss: 1.7575 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning keras

1
推荐指数
1
解决办法
71
查看次数