我正在R中使用keras包来训练深度学习模型。我的数据集非常不平衡。因此,我想在class_weight函数中设置fit参数。这是我用于模型的拟合函数及其参数

history <- model %>% fit(
  trainData, trainClass,
  epochs = 5, batch_size = 1000,
  class_weight = ????,
  validation_split = 0.2
)

在python中,我可以将class_weight设置如下:
class_weight={0:1, 1:30}

但是我不确定如何在R中执行此操作。在R的帮助菜单中,它对class_weight的描述如下:



有什么想法或建议吗?

最佳答案

Class_weight需要是一个列表,所以

    history <- model %>% fit(
        trainData, trainClass,
        epochs = 5, batch_size = 1000,
        class_weight = list("0"=1,"1"=30),
        validation_split = 0.2
    )

似乎有效。 Keras内部使用名为as_class_weights的函数将列表更改为python-dictionary(请参阅https://rdrr.io/cran/keras/src/R/model.R)。
     class_weight <- dict(list('0'=1,'1'=10))
     class_weight
     >>> {0: 1.0, 1: 10.0}

看起来就像您上面提到的python字典。

关于r - 如何在R的keras包中设置class_weight?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46907881/

10-12 21:15