我怎么知道我的 conv1D 模型是过拟合还是过拟合损失曲线?

数据挖掘 Python 喀拉斯 卷积神经网络
2021-10-08 08:02:31

我正在研究时间序列多元数据的分类。通过进行 PCA,我将多变量转换为单变量并将其输入到 keras 中的 conv1d 中。

但是,我在验证和训练中都获得了非常高的准确性和低损失。我怎样才能证明这一点?

我尝试过交叉验证,但结果差别不大。我正在使用亚当优化器(学习率:0.0001)。使用 0.001,我的模型无法收敛。

我确保我没有混合训练和验证数据集。我已经将两个数据集相互独立地洗牌。我训练了 3728 个样本并验证了 610 个样本。

我们可以期望二进制分类有如此高的准确性吗?

准确度和损失曲线

3个回答

从你显示的曲线是yes过度拟合意味着你的验证准确率会低于你的训练准确率,这里不是这种情况。由于您说您的训练和验证集是完全独立的(即验证集中没有训练样本),您可以认为结果可靠。

然而,准确性可能不是模型性能的最佳指标确保您的数据集是平衡的(即两个类中的样本数量彼此相等)。如果不尝试其他更能代表模型性能的指标。

您是否尝试保留一个单独的测试集(在训练集和验证集之上)在模型中的任何时候都没有使用?只有在您拥有最终模型、经过训练和验证后才能使用此测试集。这应该是对过度拟合的可靠测试。

当验证准确度开始下降而训练准确度继续增加(损失相反)时,就会发生过度拟合。
因此,查看您的曲线,没有过度拟合,因为验证准确度永远不会显着降低。
如果训练和验证损失的值非常相似,这仅意味着您的训练和验证数据非常相似,即来自完全相同的分布,这是一件好事。
如果两个类别非常不同并且很容易分离,那么在二元分类问题中可能具有非常高的准确度。
例如,如果这 2 个品种在视觉上相似,那么您在识别猫与狗时可能会获得非常高的准确度,但在识别猫品种 1 和猫品种 2 时的准确度就不那么高了。