即使在平衡数据之后也会出现类不平衡问题

数据挖掘 神经网络 深度学习 喀拉斯 张量流 阶级失衡
2022-02-24 20:09:18

因此,我正在针对二进制分类问题训练神经网络,并且我的案例 (1) 和控件 (0) 不平衡,因此我对案例进行了过采样,以便训练集由控件组成 0.5053。我没有平衡我的测试集,即 0.562 个控件。一开始我的训练和测试准确率上升(它仍然不是很准确,但我希望会是这种情况),但随后训练准确率急剧下降,而测试准确率趋于平稳。

它们最终的精度分别为 0.5053 和 0.562,因此网络只是对所有内容进行了相同的分类。我不明白这种行为是如何产生的,因为我认为平衡我的训练集可以避免将所有内容分类为相同的问题?此外,训练集开始从 50/50 开始向上学习,但我无法理解它的回归。我能做些什么来防止这种情况发生吗?或者我应该在训练准确度开始下降时提前停止?

任何见解将不胜感激!

opt = tf.keras.optimizers.SGD(lr=0.000001,动量=0.9,衰减=0,nesterov=True)

模型 = keras.Sequential([keras.layers.Dense(100,kernel_initializer='he_uniform',bias_initializer=keras.initializers.Constant(值=0.01),activation=tf.nn.relu,kernel_regularizer=regularizers.l2(0.1) ), keras.layers.Dense(100,kernel_initializer='he_uniform',bias_initializer=keras.initializers.Constant(值=0.01),activation=tf.nn.relu, kernel_regularizer=regularizers.l2(0.1)), keras.layers .密集(1,激活=tf.nn.sigmoid)])

model.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy']) 在此处输入图像描述

1个回答

平衡数据集的事实将防止过度拟合,因此在测试集中取得良好的结果,在模型没有欠拟合的假设下工作。

可能发生的情况是模型太糟糕了,它无法在不平衡和平衡的数据集中执行分类任务。

没有更多信息很难分析问题,您可能面临收敛问题(学习率过大,梯度消失),您也可能以错误的方式计算准确性......