我是R,Keras和Neural Networks的初学者,这是我在Stack Overflow中的第一篇文章,所以我会尝试以最专业的方式解释自己。我试图找到有关此问题的信息,但我发现的所有内容都是Python,我不知道如何在R中实现它。
因此,我尝试使用Softmax Layer输出使用以下模型实现多类分类问题:
model <- keras_model_sequential()
model %>%
layer_dense(units = 512, activation = 'relu', input_shape = 26) %>%
layer_dropout(rate = 0.2) %>%
layer_batch_normalization() %>%
layer_dense(units = 256, activation = 'relu') %>%
layer_dropout(rate = 0.2) %>%
layer_batch_normalization() %>%
layer_dense(units = 256, activation = 'relu') %>%
layer_dropout(rate = 0.5) %>%
layer_dense(units = 5, activation = 'softmax')
我的数据包含大约35.000个训练样例,我使用随机抽样的90/10数据分割。最后,我拟合,评估和计算了一些预测,以手动检查我是否做得不错,如下图所示,带有一些非常标准的代码:
# Fit the model
history <- model %>% fit(
x_train, y_train,
epochs = 30, batch_size = 128,
validation_split = 0.2
)
# Evaluate the model
score <- model %>% evaluate(x_test, y_test, batch_size = 128)
print(score)
然而,我继续在Softmax层上获得较低的每级精度,这就是为什么我想让我的模型更精确。然而,我的问题如下:
如何在R(例如随机网格搜索)中对Keras实现快速,系统的超参数正则化(#layers,#node,学习率,提前停止等)?我读到插入包可以正常工作,但我对如何使用这个或其他包与keras有点迷失。
如何将分类变量添加为模型的输入?认为我的数据被安排为n×m矩阵,其中第一个k <1。 m列是分类变量。
此外,我们非常感谢任何其他改进我的模型的建议!