假设我将数据拆分为 80% 的训练和 20% 的测试/验证,并且我想对其进行标准化,我认为我说我不应该对 100% 的数据进行标准化,然后进行拆分,因为那时验证对训练数据有一些了解?
我不确定我是否应该
1) 对 80% 的训练数据生成均值和标准差统计数据,然后应用相同的均值/标准差对验证数据进行标准化。
或者 2) 将训练数据标准化,然后对验证数据进行标准化,即从训练数据的 80% 导出均值和 SD,然后对 20% 的验证数据分别导出均值/SD?
非常感谢
假设我将数据拆分为 80% 的训练和 20% 的测试/验证,并且我想对其进行标准化,我认为我说我不应该对 100% 的数据进行标准化,然后进行拆分,因为那时验证对训练数据有一些了解?
我不确定我是否应该
1) 对 80% 的训练数据生成均值和标准差统计数据,然后应用相同的均值/标准差对验证数据进行标准化。
或者 2) 将训练数据标准化,然后对验证数据进行标准化,即从训练数据的 80% 导出均值和 SD,然后对 20% 的验证数据分别导出均值/SD?
非常感谢
是的,测试数据可能包含一些您没有从测试集中学到的重要内容。不,您不能使用测试集进行学习。
测试集的目的是了解系统在训练期间未看到的新数据上的表现。在测试集中安装你的缩放器会破坏这个目的。
1) 对 80% 的训练数据生成均值和标准差统计数据,然后应用相同的均值/标准差对验证数据进行标准化。
这就是你应该做的。
或者 2) 将训练数据标准化,然后对验证数据进行标准化,即从训练数据的 80% 导出均值和 SD,然后对 20% 的验证数据分别导出均值/SD?
这是有效的,如果你的生产系统是这样的。因此,如果您分批获取数据并规范化批次,它也可能没问题。