python - 卷积神经网络中的不平衡类

标签 python machine-learning computer-vision keras convolution

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

据我了解,Keras 的 ImageDataGenerator 有助于在训练模型之前增强数据以增加观察数量,但是是否可以仅增强一类,例如添加噪声、模糊或执行只对少数阶层进行改造?

最佳答案

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

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

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

然后,您可以使用平衡的训练和验证数据进行实际训练。

关于python - 卷积神经网络中的不平衡类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44504963/

相关文章:

python - 在变化时显示 kivy slider 值

machine-learning - keras 在优化过程中卡住了

python - 如何在 Tensorflow 中使用 label_image.py 一次测试多个图像

android - Vuforia 图像识别是如何工作的?

c# - 使用 EmguCV 3.1.0.1 从视频捕获中检测

python - 使用 Python 列表作为队列的效率

Python- Sympy 问题,当 evaluate=False 时进行表达式相等性检查

python - Pandas : finding out wrong data

machine-learning - 如何训练推荐系统的神经网络?

machine-learning - 决策树中的假设函数空间