清理训练数据后如何清理测试数据?

问题描述 投票:0回答:1

理想情况下,我应该尽早(或至少在特征工程之前)将数据拆分为训练数据和测试数据。这样训练模型的过程就不会受到我对测试数据的了解的影响(例如,使用从训练和测试数据构建的参数来标准化变量)。

但是,最终我将不得不以相同的方式预处理两个数据集。 ** 解决这个问题的最佳方法是什么? **

目前,我可以想到两种方法:

  1. 拆分训练数据和测试数据,但将它们连接到同一数据帧中进行预处理。可以在数据框中标记训练和测试数据(例如,1=测试,0=训练)。这使得将字符串变量更改为小写等步骤变得更容易,但我必须格外小心标准化等步骤,以确保我不使用测试数据

  2. 将训练和测试数据拆分为单独的数据帧,并首先使用训练集。训练模型后,以与训练数据集相同的方式预处理测试数据。 我觉得方法 2 不太容易出错,因为测试数据不会泄漏数据。然而,这听起来也更乏味。 **对于那些使用方法 2 的人来说,您如何简化这个过程? **

总的来说,我想了解围绕此问题的最佳实践是什么。预先感谢!

python machine-learning data-cleaning
1个回答
0
投票

那里有各种选项,我的意思是使用 sklearn Pipeline 来完成此任务,作为最终估计器之前的一系列转换。

© www.soinside.com 2019 - 2024. All rights reserved.