我正在学习Kaggle数字识别教程,试图理解所有这些是如何工作的。我想验证一个预测值。基本上,我有一个错误的预测,但我想要查看这个预测的实际值。我觉得我离正确答案还差得很远:
...
df = pd.read_csv('data/train.csv')labels = df['label'].valuesx_train = df.drop(columns=['label']).values / 255# 尝试生成一个低质量的训练/测试数据集x_train, x_test, y_train, y_test = train_test_split(x_train, labels, test_size=0.95)# 故意尝试得到一个低质量的模型,以便了解验证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 = 0print('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)
这会产生以下结果:
我怎样才能得到一个真实的“这是预测”和“这是实际”的分解?我的逻辑在获取实际值上肯定有问题。
回答:
真实标签(有时也称为目标值或真实标签)分别存储在训练集的y_train
和测试集的y_test
中。因此,你可以简单地打印这些值来找到真实标签:
print('Actual:', y_test[index_to_predict])