代码之家  ›  专栏  ›  技术社区  ›  mwilson

如何在keras中验证预测

  •  1
  • mwilson  · 技术社区  · 7 年前

    我正在经历 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)
    

    这将产生以下结果:

    enter image description here

    我怎样才能得到一个真实的“这里是预测”和“这里是实际”的分解?我对得到实际情况的逻辑肯定是错误的。

    2 回复  |  直到 7 年前
        1
  •  1
  •   today    7 年前

    真实标签(有时也称为目标值或基本真实标签)存储在 y_train 和 y_test 分别用于训练和测试。因此,您可以很容易地打印出来找到真正的标签:

    print('Actual:', y_test[index_to_predict])
    
        2
  •  1
  •   Null    7 年前
    y_test[index_to_predict]
    

    会有实际的标签和

    predictions[index_to_predict]
    

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