Keras二进制分类器教程示例仅提供50%的验证准确性

时间:2019-12-01 23:37:35

标签: python tensorflow machine-learning keras

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 / sample-损耗:0.6905-精度:0.5410-val_loss:0.6959-   val_accuracy:0.4812

有人可以帮助我了解这里是否有问题吗?

  • 如何提高本教程中提出的“示例”问题的准确性?

1 个答案:

答案 0 :(得分:1)

如果您使用random示例训练分类器,则总会得到近似值。由x_test表示的验证数据的准确度为50%。这是因为您的训练样本受到了随机课程的训练。验证或测试集也已分配给随机类。这就是为什么出现随机精度即50-50%的原因。 测试训练集的时间越久,训练集作为 overfitting 的作用所获得的准确性就越高。