数据泄漏如何工作?

数据挖掘 时间序列 回归 随机森林 数据泄露
2022-02-18 13:35:49

我正在处理面板数据——每一行代表一个时间戳(观察),一个时间戳有多行(每行大约 20 行)。我总共有 8719 个唯一时间戳。

rows_with_the_same_timestamp

Obs_temp 是目标列。“1”列代表小时。每个时间戳都有 20 个不同的观察值(具有不同的特征值但相同的目标值)。

当我将数据随机拆分为训练&测试和预测时,随机森林和 KNN 的 MAE 分别为 0.55 和 0.0002。(基线 MAE=1.97)这是我所期待的,因为相同时间戳的 20 行最终可能会同时出现在训练集和测试集上。

当我删除所有与时间相关的列时,它们仍然几乎完美地得分。所以我的问题是,随机森林怎么知道它已经在训练集中有一些测试观察?

编辑:样本数据集已更新为具有相同时间戳的行(根据 2 个不同的时间戳过滤)。

1个回答

我的建议是看看该模型的重要特征是什么。如果您在随机森林中,可能会使用 SHAP https://github.com/slundberg/shap

您可能会看到其中一项功能非常相关。这可能是数据泄漏。

可解释人工智能的目标之一是模型调试。