如何在 Keras 中验证预测

Posted

技术标签:

【中文标题】如何在 Keras 中验证预测【英文标题】:How to validate a prediction in Keras 【发布时间】:2019-12-05 20:15:23 【问题描述】:

我正在查看Kaggle Digit Recognizer Tutorial,并试图了解所有这些是如何工作的。我想验证一个预测的值。基本上,我的预测是错误的,但我想看看该预测的实际值是多少。我想我很遥远:

...

df = pd.read_csv('data/train.csv')

labels = df['label'].values
x_train = df.drop(columns=['label']).values / 255
# trying to produce a crappy dataset for train/test
x_train, x_test, y_train, y_test = train_test_split(x_train, labels, test_size=0.95)


# Purposely trying to get a crappy model so I can learn about validation
model = tf.keras.models.Sequential()
# model.add(tf.keras.layers.Flatten())
# model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

model.fit(x_train, y_train, epochs=1)
predictions = model.predict([x_test])


index_to_predict = 0
print('Prediction: ', np.argmax(predictions[index_to_predict]))
print('Actual:     ', predictions.argmax(axis=-1)[index_to_predict])
print(predictions.shape)
vals = x_test[index_to_predict].reshape(28, 28)
plt.imshow(vals)

这会产生以下结果:

如何获得真正的“这是预测”和“这是实际”细分?我得到实际的逻辑肯定是错误的。

【问题讨论】:

混淆矩阵怎么样? 嗯,我现在已经亲自进入了那个矩阵。 这应该可以帮助您更好地了解培训。您还可以将目标值和预测值与图像名称一起写入 csv 文件,并使用 excel 中的一些过滤器或一些电子表格检查它们,通常对我来说会提供更好的视角。 【参考方案1】:
y_test[index_to_predict]

会有实际的标签和

predictions[index_to_predict]

应该有每个类的预测概率值。

【讨论】:

【参考方案2】:

真实标签(有时也称为目标值或真实标签)存储在y_trainy_test 中,分别用于训练和测试集。因此,您可以轻松地打印出来以找到真正的标签:

print('Actual:', y_test[index_to_predict])

【讨论】:

以上是关于如何在 Keras 中验证预测的主要内容,如果未能解决你的问题,请参考以下文章

在keras文本分类模型中预测时如何循环

如何使用训练有素的 Keras CNN 模型对新的未标记数据进行预测

如何在 Keras 中使用经过训练的模型进行预测

在预测期间,数据规范化如何在 keras 中工作?

如何在 Keras 中使用 predict_generator 对未标记的测试数据执行预测?

基于 Keras 用深度学习预测时间序列