[英]Keras validation accuracy is 1 but only predicts only class 0 in binary classification?
[英]Keras Binary Classifier Tutorial Example gives only 50% validation accuracy
Keras 二元分類器教程示例僅提供 50% 的驗證准確度。 近 50% 的准確率可以從未經訓練的分類器本身獲得,用於二元分類。
這個例子直接來自https://keras.io/getting-started/sequential-model-guide/
import numpy as np
import tensorflow as tf
from tensorflow_core.python.keras.models import Sequential
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
np.random.seed(10)
# Generate dummy data
x_train = np.random.random((1000, 20))
y_train = np.random.randint(2, size=(1000, 1))
x_test = np.random.random((800, 20))
y_test = np.random.randint(2, size=(800, 1))
model = Sequential()
model.add(Dense(64, input_dim=20, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(x_train, y_train,
epochs=50,
batch_size=128,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, batch_size=128)
精度輸出。
紀元 50/50 1000/1000 [==============================] - 0s 211us/樣本 - 損失:0.6905 - 准確度:0.5410 - val_loss:0.6959 - val_accuracy:0.4812
有人可以幫我理解這里是否有問題嗎?
如果您使用random
示例訓練分類器,您將始終獲得 aprrox。 此處由x_test
表示的驗證數據准確率為 50%。 這是因為您的訓練樣本是通過隨機類別進行訓練的。 此外,驗證或測試集已分配給隨機類別。 這就是隨機准確率(即 50-50%)出現的原因。 您測試訓練集的時期越多,由於過度擬合,您在訓練集上獲得的准確度就越高。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.