【问题标题】:Dealing with highly imbalanced datasets using Tensorflow Dataset and Keras Tuner使用 TensorFlow Dataset 和 Keras Tuner 处理高度不平衡的数据集
【发布时间】:2021-01-26 14:37:21
【问题描述】:

我有一个高度不平衡的文本文档数据集(3% 是,87% 否),其中包含标题和摘要特征。我已将这些文档转换为带有填充批次的tf.data.Dataset 实体。现在,我正在尝试使用深度学习来训练这个数据集。使用 TensorFlow 中的 model.fit(),您可以使用 class_weights 参数来处理类不平衡,但是,我正在使用 keras-tuner 库寻找最佳参数。在他们的超参数调谐器中,他们没有这样的选择。因此,我正在寻找其他解决类不平衡的方法。

有没有在keras-tuner 中使用类权重的选项?补充一点,我已经在使用precision@recall 指标。我也可以尝试一种数据重采样方法,例如imblearn.over_sampling.SMOTE,但正如this Kaggle 帖子所述:

SMOTE 似乎无助于改善结果。但是,它使网络学习更快。此外,还有一个大问题,这种方法不兼容更大的数据集。您必须对嵌入的句子应用 SMOTE,这会占用太多内存。

【问题讨论】:

    标签: python tensorflow keras imbalanced-data keras-tuner


    【解决方案1】:

    如果您正在寻找其他方法来处理不平衡数据,您可以考虑使用 SMOTE 或 ADASYN 包生成合成数据。这通常有效。我看到您已将其视为探索的一种选择。

    【讨论】:

      【解决方案2】:

      您可以将评估指标更改为 fbeta_scorer。(其加权 fscore)

      或者如果数据集足够大,可以尝试欠采样。

      【讨论】:

      • 调谐器文档指出“运行超参数搜索。搜索方法的参数与用于 tf.keras.model.fit 的参数相同”。您是否尝试使用 class_weight 参数?
      • @GerryP 你能把那个文档的链接分享给我吗?我找不到kt.Hyperband是否可以使用class_weight参数
      猜你喜欢
      • 2019-09-07
      • 2017-11-23
      • 1970-01-01
      • 2016-01-06
      • 2021-05-29
      • 2016-02-08
      • 2016-01-27
      • 2018-09-23
      • 2019-09-19
      相关资源
      最近更新 更多