keras - 检查通过看不见的数据评估keras模型的方式是否正确
问题描述
我研究Keras
并创建了我的第一个神经网络模型,如下所示:
from keras.layers import Dense
import keras
from keras import Sequential
from sklearn.metrics import accuracy_score
tr_X, tr_y = getTrainingData()
# NN Architecture
model = Sequential()
model.add(Dense(16, input_dim=tr_X.shape[1]))
model.add(keras.layers.advanced_activations.PReLU())
model.add(Dense(16))
model.add(keras.layers.advanced_activations.PReLU())
model.add(Dense(1, activation='sigmoid'))
# Compile the Model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Fit the Model
model.fit(tr_X, tr_y, epochs=1000, batch_size=200, validation_split=0.2)
# ----- Evaluate the Model (Using UNSEEN data) ------
ts_X, ts_y = getTestingData()
yhat_classes = model.predict_classes(ts_X, verbose=0)[:, 0]
accuracy = accuracy_score(ts_y, yhat_classes)
print(accuracy)
我不确定我的代码的最后一部分,即使用model.predict_classes()
通过自定义方法加载新数据的模型评估getTestingData()
。请参阅我的目标是使用新的 UNSEEN 数据测试最终模型以评估其预测。我的问题是关于这部分:我是否正确评估了模型?
谢谢,
解决方案
对,那是正确的。您可以使用 predict 或 predict_classes 来获得对测试数据的预测。如果您直接需要损失和指标,您可以通过输入 ts_X 和 ts_y 来使用评估方法。
y_pred = model.predict(ts_X)
loss, accuracy = model.evaluate(ts_X, ts_y)
https://keras.io/models/model/#predict
https://keras.io/models/model/#evaluate
predict 和 predict_classes 之间的区别:keras 中的“predict”和“predict_class”函数有什么区别?
推荐阅读
- javascript - 为什么这个控制台记录两次?
- excel - 放置属性 OLEObject
- java - 打字稿:如何一次请求上传多张图片?
- while-loop - 如何在 SAS 中正确使用 while 循环
- android - 使用自动完成时 TextInputLayout 背景颜色发生变化
- java - Eclipse 或 Android Studio 中的 Buildbox Apk 生成给出了相同的 logcat 错误
- python - 是否可以在 Python 中重新定义关键字?
- node.js - Node.js - HTTP Keep-Alive 和线程池
- webpack - 尝试在 Webpack 中包含一些 CSS 会引发错误
- python - 如何在python3中的每一行末尾删除这个额外的尾随空格