使用用户特定的累积变量会导致数据泄漏吗?

数据挖掘 数据泄露
2021-10-10 21:20:20

假设我有一个场景,其中我的观察单位是在提供某种服务后发出的账单,我的目标是预测是否会支付该账单。我在系统中有用户,因此我包括用户变量,例如用户拥有的未付账单数量、用户在服务系统中的时间(资历)等。我在第 1 个月进行培训并在第 2 个月进行测试(在那几个月创建的账单, 分别)。

在测试月份,我将增加用户变量的计数,例如,如果在培训期间 user_1 在我的系统中有 100 天的时间,当然如果在测试月份有与他相关的账单 - 他的天数会更高.

这些变量的这种累积性质是否被认为是训练集和测试集之间的数据泄漏(因为在某种意义上,在测试中使用了训练中使用的部分信息)?

2个回答

如果数据在预测时可用,则不是数据泄漏。

在您的具体示例中,应在预测时使用历史用户数据来构建更好的模型。

您必须决定如何进行训练/测试拆分。您可以按用户、按时间或组合进行拆分。

是的,很明显数据泄漏,实际上这是许多 DS 丢失的棘手问题。

您所指的计数功能逻辑对于每一行(无论它属于哪个数据集)都应仅基于比您计算计数的当前行“旧”的行。它使您的实验和特征工程更加复杂,但这是真正反映您在现实中拥有(或将拥有)的数据的唯一方法。