【问题标题】:Stratified train-test splitting a Tensorflow dataset分层训练测试拆分 Tensorflow 数据集
【发布时间】:2022-06-25 09:56:43
【问题描述】:

我目前正在处理一个相当大的图像数据集,并在 python 中使用来自tensorflow.kerasImageDataGenerator 加载它。由于我的数据分类非常不平衡,我想做一个分层的训练-测试-拆分,以可能达到更高的准确度。

我知道如何使用 ImageDataGenerator 进行简单的随机训练测试拆分,但我找不到与您可以在 sklearn 中执行的分层训练测试拆分的任何等效项。

有没有办法分层训练-测试-拆分tensorflow.data.Dataset? 如果没有,您如何处理大型不平衡数据集? 非常感谢您的帮助!

以下是相关代码:

from tensorflow.keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator()
dataset = datagen.flow_from_directory(
    path_images, 
    target_size=(ImageHeight, ImageWidth), 
    color_mode='rgb', 
    class_mode='sparse', 
    batch_size=BatchSize, 
    shuffle=True, 
    seed=Seed,
)

【问题讨论】:

    标签: python tensorflow keras train-test-split imbalanced-data


    【解决方案1】:

    流( X, y=无, 批量大小=32, 洗牌=真, 样品重量=无, 种子=无, save_to_dir=无, 保存前缀='', save_format='png', ignore_class_split=假, 子集=无 )

    【讨论】: