【发布时间】:2018-08-16 23:17:01
【问题描述】:
我是 Keras 的新手,正在尝试创建模型。问题是我的训练准确率大约是 80%,但验证准确率非常低,只有 15%。我的数据集中有 545 行。我已经标准化了所有的输入特征。任何关于可以调整的帮助都会非常有帮助。
在这里分享完整的数据和代码
https://drive.google.com/open?id=1g8Cmw2bmAI9DnOU-rB4sjsOeBuFp6NUy
#Normalize data
data[,1:(ncol(data)-1)] = normalize(data[,1:(ncol(data)-1)])
data[,ncol(data)] = as.numeric(data[,ncol(data)]) - 1
set.seed(128)
ind = sample(2,nrow(data),replace = T,prob = c(0.7,0.3))
training = data[ind==1,1:(ncol(data)-1)]
test = data[ind==2,1:(ncol(data)-1)]
traintarget = data[ind==1,ncol(data)]
testtarget = data[ind==2,ncol(data)]
# One hot encoding
trainLabels = to_categorical(traintarget)
testLabels = to_categorical(testtarget)
print(testLabels)
model = keras_model_sequential()
model %>%
layer_dense(units = 150, activation = 'relu', input_shape = c(520)) %>%
layer_dense(units = 50, activation = 'relu') %>%
layer_dense(units = 9, activation = 'softmax')
model %>%
compile(loss = 'categorical_crossentropy', optimizer = 'adam',metrics = 'accuracy')
history = model %>%
fit(training,
trainLabels,
epoch = 300,
batch_size = 32,
validation_split = 0.2)
prob = model %>%
predict_proba(test)
pred = model %>%
predict_classes(test)
table2 = table(Predicted = pred, Actual = testtarget)
cbind(prob,pred,testtarget)
【问题讨论】:
-
这似乎不是一个适合 Stack Overflow 的特定编程问题。如果您需要一般的模型拟合建议,那么您可能应该通过Data Science 或Cross Validated 询问。
-
@MrFlick - 感谢您的建议。我会在您建议的论坛中发布问题
标签: r neural-network keras text-classification