我正在试验一个数据集,我有几列具有高基数。所以,我执行了平均目标编码(假设我的数据集有超过 50000 个观察值)。但是,在此之前,我将我的数据(使用 Pandas)拆分为训练和测试,然后对它们进行编码。检查后,我意识到我的训练和测试数据集有 Nan 的。由于您无法使用 Nan 运行 ML 算法,因此我决定将它们都归为 MissForest。
我的问题是:我所做的是否可以接受?
我正在试验一个数据集,我有几列具有高基数。所以,我执行了平均目标编码(假设我的数据集有超过 50000 个观察值)。但是,在此之前,我将我的数据(使用 Pandas)拆分为训练和测试,然后对它们进行编码。检查后,我意识到我的训练和测试数据集有 Nan 的。由于您无法使用 Nan 运行 ML 算法,因此我决定将它们都归为 MissForest。
我的问题是:我所做的是否可以接受?
是的,可以同时估算训练集和测试集。您必须注意不要通过拆分引入信息泄漏 - 如果您对训练集进行插补,则对测试集也使用相同的插补过程。我相信评论中也提到了这一点。以下是一些进一步的信息:
除非您知道可以在现实生活中获得该数据,否则您不应该估算您的测试集。大多数时候,在现实生活中的数据中,插补只是零意义。假设您正在预测客户是否会违约并采取贷款申请变量,如果有人忘记在申请表中填写他的年龄,您将不会使用您预设的训练插补模型来填写,这不仅仅是一个数据随机丢失的点,它是一个真实的人。所以要小心你使用模型的目的,然后决定测试的插补。