【发布时间】:2020-02-08 21:12:42
【问题描述】:
我现在正在处理丢失的数据。我的测试和训练集中缺少数据。我对如何处理 test 集中的缺失数据感到有些困惑。如果我使用“均值”方法进行估算,如果我想估算 test 集中的缺失值,我应该使用从训练集还是测试集计算的平均值。 谢谢你帮助我!
【问题讨论】:
我现在正在处理丢失的数据。我的测试和训练集中缺少数据。我对如何处理 test 集中的缺失数据感到有些困惑。如果我使用“均值”方法进行估算,如果我想估算 test 集中的缺失值,我应该使用从训练集还是测试集计算的平均值。 谢谢你帮助我!
【问题讨论】:
一般来说,您不应该从测试集中计算均值或任何其他值(考虑测试集的最佳方式是它根本不存在,至少在您已经训练模型之前)。
构建一个转换管道,该管道可以处理所有必要的预处理步骤(估算缺失数据、标准化、执行所需的特征工程、降维......)在训练集上以及当新的观察出现时(我们应该将测试集视为训练期间不可用的新观察结果)将此管道转换应用于该新数据。
【讨论】:
您应该使用 train 来表示。永远不要从 test 数据集中推断信息,因为这是信息泄漏。
计算test 数据集的平均值将为您提供有关mean 的算法信息(显然),并且可能会错误地提高它的分数。
在现实生活中,您通常无法计算缺失数据的平均值(想想单个传入的缺失值示例)。
【讨论】:
train上计算它们没有数据泄漏,如果你在test上计算它们就会有。