Keras中的神经网络R:怀疑改进我的分析并将分类变量作为输入

时间:2018-01-25 18:45:48

标签: r keras

我是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列是分类变量。

此外,我们非常感谢任何其他改进我的模型的建议!

0 个答案:

没有答案