我已经用Keras建立了这个模型:
model = Sequential()
model.add(LSTM(50, return_sequences=True,input_shape=(look_back, trainX.shape[2])))
model.add(LSTM(50))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=['accuracy'])
model.fit(trainX, trainY,validation_split=0.3, epochs=50, batch_size=1000, verbose=1)
结果令人惊讶...当我这样做时:
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)
print(confusion_matrix(trainY, trainPredict.round()))
print(confusion_matrix(testY, testPredict.round()))
我分别得到:
[[129261 0]
[ 172 129138]]
和
[[10822 0]
[10871 0]]
换句话说,我的训练混淆矩阵很好,而我的测试混淆矩阵将每个人都归类为“阳性”。令人惊讶的是,我在培训和测试方面都拥有非常完美的平衡实例。
我为什么要这个?
谢谢