【发布时间】:2018-11-11 08:02:03
【问题描述】:
对于我基于数据处理的考试,我们收到了一个由 4 个字符(Bart、Homer、Lisa、Marge)组成的小型辛普森一家数据集,用于构建卷积神经网络。然而,该数据集只包含相当少量的图像:大约 2200 张,分为测试和训练。
由于我对神经网络和深度学习非常陌生,是否可以使用 sklearn 的 testtrainsplit 函数来扩充我的数据(我将图像旋转 X 度 9 次)并随后拆分我的数据。
自从我进行了这项更改后,我使用当前模型在 50 个 epoch 后获得了大约 95% 的训练和测试准确率。由于这超出了我的预期,我开始质疑是否主要接受增加测试数据而最终不会产生有偏见或错误的结果。
所以:
a) 您能否在使用 sklearn 的 TrainTestSplit 拆分数据之前对其进行扩充,而不会以错误的方式影响您的结果?
b) 如果我的方法错了,还有什么方法可以尝试?
提前致谢!
【问题讨论】:
-
你可以只在训练集上尝试旋转(拆分数据后)并检查性能吗?
-
我们在切换之前第一次这样做了。感觉就像我们的测试准确度与稳定的训练准确度相比跳跃了一大堆(测试在 2-3% 的范围内上下跳跃)。使用我们的模型,我们也得到了过度拟合,因为训练仍将上升到高水平,而测试将保持在 87 左右,并保持波动
-
那么这应该被视为您真正的测试准确性。因为您将在考试中获得的测试数据不会被轮换。您可以尝试交叉验证和超参数调整来提高性能,但我建议不要接触最终预测以外的测试数据。
-
抱歉,我并没有明确说明这个作业是考试。我们必须在教授面前捍卫我们的选择。感谢您的信息,我会相应地调整模型!
标签: python scikit-learn deep-learning conv-neural-network