我阅读了许多不同的来源,我需要将我的数据分成训练集和测试集。然后我必须确保算法只在训练数据上进行训练,并尽我所能防止测试数据泄漏到训练过程中。
为了避免学习数据的无关紧要的细节(这将增加算法的泛化能力),我可以进一步将我的训练数据分成适当的训练集和验证集多次,并选择算法的参数,以提供最佳的平均性能所有这样的分裂。
最后我在测试集上评估我的算法,并得到一些数字:MSE、RMSE 等。但是这些数字真的说明了我的算法有多好,它们不受测试集的影响吗?
当然,我在训练期间没有使用我的测试数据,但我得到的算法参数仅对这种特定的训练集和测试集拆分有效。如果我以不同的方式拆分数据,我将得到不同的 MSE、RMSE 和不同的最优参数。
然后我可以对训练/测试进行许多不同的拆分,并计算每个拆分的误差。在那种情况下,它与我在第一次拆分期间所做的交叉验证有何不同?我是否需要将我的训练数据进一步划分为正确的数据集和验证集?
如果我对训练和测试集进行了许多不同的拆分,这是否意味着我的测试数据会泄漏到训练过程中,因为有些数据在测试集中进行一次拆分,但在训练集中进行了另一次拆分?