Python keras模型的二元交叉熵精度不变
我在网上看到了很多关于这个问题的问题,但是没有确定的解决方案,我的情况可能会有所不同,因为时间序列数据和LSTM体系结构就是这样Python keras模型的二元交叉熵精度不变,python,machine-learning,keras,loss,Python,Machine Learning,Keras,Loss,我在网上看到了很多关于这个问题的问题,但是没有确定的解决方案,我的情况可能会有所不同,因为时间序列数据和LSTM体系结构就是这样 model = Sequential() model.add(LSTM(50, activation='relu', return_sequences=True, input_shape=(n_steps, n_features))) model.add(LSTM(50, activation='relu')) model.add(Dense(1, activatio
model = Sequential()
model.add(LSTM(50, activation='relu', return_sequences=True, input_shape=(n_steps, n_features)))
model.add(LSTM(50, activation='relu'))
model.add(Dense(1, activation = 'sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy',metrics=['accuracy'])
日志:
有两件事可以尝试:
- 降低学习速度
- 数据集是否不平衡?如果是这样,那么模型已经学会了只预测一个类(我认为这就是原因)
- 试着给不平衡的班级更多的体重检查
- 尝试重置模型,
tf.keras.backend.clear\u session
- 试着去理解,弱小的学习者
- 更好的是,尝试一个基本的时间序列回归模型,如
,以获得基线结果ARMA
Train on 290 samples, validate on 190 samples
Epoch 1/4000
- 1s - loss: 0.6896 - accuracy: 0.5586 - val_loss: 0.6846 - val_accuracy: 0.6105
Epoch 2/4000
- 0s - loss: 0.6890 - accuracy: 0.5586 - val_loss: 0.6843 - val_accuracy: 0.6105
Epoch 3/4000
- 0s - loss: 0.6889 - accuracy: 0.5586 - val_loss: 0.6829 - val_accuracy: 0.6105
Epoch 4/4000
- 0s - loss: 0.6884 - accuracy: 0.5586 - val_loss: 0.6827 - val_accuracy: 0.6105
Epoch 5/4000
- 0s - loss: 0.6883 - accuracy: 0.5586 - val_loss: 0.6825 - val_accuracy: 0.6105
Epoch 6/4000
- 0s - loss: 0.6882 - accuracy: 0.5586 - val_loss: 0.6822 - val_accuracy: 0.6105
Epoch 7/4000
- 0s - loss: 0.6882 - accuracy: 0.5586 - val_loss: 0.6820 - val_accuracy: 0.6105
Epoch 8/4000
- 0s - loss: 0.6880 - accuracy: 0.5586 - val_loss: 0.6818 - val_accuracy: 0.6105
Epoch 9/4000
- 0s - loss: 0.6880 - accuracy: 0.5586 - val_loss: 0.6806 - val_accuracy: 0.6105
Epoch 10/4000
- 0s - loss: 0.6876 - accuracy: 0.5586 - val_loss: 0.6795 - val_accuracy: 0.6105