sko*_*maz 4 r deep-learning keras tensorflow
我keras在R中使用包来训练深度学习模型.我的数据集非常不平衡.因此,我想class_weight在fit函数中设置参数.这是我用于模型的fit函数及其参数
history <- model %>% fit(
trainData, trainClass,
epochs = 5, batch_size = 1000,
class_weight = ????,
validation_split = 0.2
)
Run Code Online (Sandbox Code Playgroud)
在python我可以设置class_weight如下:
class_weight={0:1, 1:30}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在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
)
Run Code Online (Sandbox Code Playgroud)
似乎工作.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}
Run Code Online (Sandbox Code Playgroud)
看起来就像你上面提到的python字典.