【发布时间】:2019-12-01 23:37:35
【问题描述】:
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
有人可以帮助我了解这里是否有问题吗?
- 如何提高教程中提出的这个“示例”问题的准确性?
【问题讨论】:
-
嗯,你到底在尝试什么?用模型拟合随机数据?如果是这样的话,当然你会得到 50% 的准确率(对于二元分类问题)(除非你过度拟合模型——在这种情况下你会得到接近 100% 的训练数据准确率)。
-
感谢您的澄清。是的,我意识到我的错误。我从教程中拿了一个例子,我被随机选取的测试数据集误导了。
标签: python tensorflow machine-learning keras