【问题标题】:Imbalanced Classes in Convolutional Neural Networks卷积神经网络中的不平衡类
【发布时间】:2017-11-14 06:08:39
【问题描述】:

我有一个分类问题,其中感兴趣的类别仅占数据集的 7%,而整个群体大约有 1200 个观察值。

我了解 Keras 的 ImageDataGenerator 有助于在训练模型之前增加数据以增加观察次数,但是是否可以只增加一个类,例如添加噪声、模糊或仅对少数执行转换上课?

【问题讨论】:

    标签: python machine-learning computer-vision keras convolution


    【解决方案1】:

    您可以尝试平衡 fit() 函数中的 class_weight 参数,该函数将字典映射到权重值。你甚至可以使用 sklearn 来计算适当的类权重。请参阅此处的 PScs 答案:https://datascience.stackexchange.com/questions/13490/how-to-set-class-weights-for-imbalanced-classes-in-keras

    或者您可以使用带有 flow_from_directory() 的 Keras ImageDateGenerator 并使用 save_to_dir 参数将图像增强运行保存到目录,从而生成更多代表性不足的类示例:https://keras.io/preprocessing/image/#imagedatagenerator

    对于该虚拟运行,您只需提供您想要更多样本的类的样本。

    然后,您将平衡的训练和验证数据用于实际训练。

    【讨论】:

      【解决方案2】:

      有一个机器学习工具包可让您对图像进行增强,包括变换、缩放/拉伸、噪声和模糊。

      图像增强器可以在这里找到: https://github.com/codebox/image_augmentor

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-13
        • 1970-01-01
        • 2020-11-01
        • 2019-01-30
        相关资源
        最近更新 更多