首页 文章

当测试和训练数据集来自不同来源时,为什么测试精度保持不变并且不会增加二进制分类

提问于
浏览
2

我有来自两个不同来源的 train 数据集和 test 数据集 . 我的意思是他们来自两个不同的实验,但两者的结果都是相同的生物图像 . 我想使用 deep CNN 进行二进制分类,并且我对测试精度和训练精度有以下结果 . 蓝线显示列车精度,红线显示近250个时期后的测试精度 . 为什么测试精度几乎是恒定的而不是提高?是因为 TestTrain 数据集来自不同的发行版?
enter image description here

编辑:在我添加了dropout图层,reguralization术语和平均减法后,我仍然得到以下奇怪的结果,表明模型从一开始就过度拟合!

enter image description here

enter image description here

1 回答

  • 3

    可能有两个原因 . 首先,你要适应训练数据 . 这可以通过使用验证分数作为测试数据的比较度量来验证 . 如果是这样,您可以使用标准技术来对抗过度拟合,例如重量衰减和辍学 .

    第二个是你的数据太不同了,不能像这样学习 . 这很难解决 . 您应首先查看两个图像的值传播 . 它们都是标准化的吗? Matplotlib自动标准化绘制图像 . 如果这仍然不起作用,您可能需要研究扩充,以使您的训练数据更接近测试数据 . 在这里我无法告诉你使用什么,没有看到火车组和测试组 .

    编辑:

    对于标准化,测试集和训练集应具有相似的值扩展 . 如果进行数据集规范化,则计算训练集的均值和标准 . 但是,您还需要在测试集上使用这些计算值,而不是从测试集中计算测试集值 . 这只有在训练和测试集的值传播相似时才有意义 . 如果不是这种情况,您可能希望首先进行每个样本规范化 .

    通常用于每个数据集的其他增强是过采样,随机通道移位,随机旋转,随机平移和随机缩放 . 这使你无法进行这些操作 .

相关问题