使用Tensorflow数据集和Keras Tuner处理高度不平衡的数据集



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

是否有在keras-tuner中使用类权重的选项?此外,我已经在使用precision@recall度量。我也可以尝试一种数据重采样方法,比如imblearn.over_sampling.SMOTE,但正如Kaggle的这篇文章所提到的:

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

如果您正在寻找其他方法来处理不平衡数据,您可以考虑使用SMOTE或ADASYN包生成合成数据。这通常是有效的。我知道你已经考虑过这是一个探索的选择。

您可以将评估度量更改为fbeta_scorer。(其加权fscore(

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

相关内容

  • 没有找到相关文章

最新更新