我建立了一个LSTM分类器,该分类器在大型数据库(2500个数据)上进行了非常良好的训练和测试。我想用自己建立的模型对新数据进行预测,但准确性较低。因此,我检查了我的模型预测如何在训练所依据的相同数据上得出。出乎意料的是,我对训练数据的准确性非常低(少量数据)。
当使用相同数据进行预测时,高精度模型怎么可能会导致非常低的精度?!
我的模型样本:
model = Sequential()
model.add(Conv1D(filters=16, kernel_size=3, activation='relu', input_shape=(n_timesteps,n_features)))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(n_outputs, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit network
history = model.fit(X_train, y_train, epochs=50, batch_size=20, verbose=2, validation_split=0.25, shuffle=True)
我如何预测:
yhat = model.predict_proba(X_test)
#or
yhat = model.predict(X_test)