You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Featuretools的DFS中是否需排除目标变量?是否存在特征泄露?

你的假设完全正确:目标变量加入DFS会导致严重信息泄露

你的怀疑一点没错——把目标变量包含进EntitySet并用于深度特征合成(DFS),确实会引发严重的信息泄露,这就是你的模型分数高得离谱的核心原因。

为什么会出现信息泄露?

DFS的核心是自动生成衍生特征,比如对分组后的字段做统计(均值、求和、最大值等)。如果目标变量被放进EntitySet,Featuretools会自动基于它生成大量和标签强关联的特征,比如:

  • 某类别分组下目标变量的均值
  • 某时间段内目标变量的总和

这些特征本质上直接“剧透”了标签信息,模型在训练时相当于直接拿到了答案,完全不需要学习数据里的真实模式。

为什么分数会异常夸张?

这种作弊式的特征会让模型的预测结果几乎完美匹配训练集的标签,所以roc_auc冲到0.996、准确率0.9997就不足为奇了,但这个分数完全没有参考价值——你的模型根本没学会泛化到 unseen 数据的能力,放到测试集上大概率会一败涂地。

正确的做法

  • 必须排除目标变量:构建EntitySet时,只保留用于特征生成的输入特征,把目标变量单独拿出来作为模型的标签列,不参与DFS过程。
  • 检查生成的特征:生成特征后,仔细查看特征列表,确保没有意外包含目标变量的衍生字段(比如特征名里带有目标变量的名称)。
  • 时序场景额外注意:如果是时序任务需要生成滞后特征,必须严格按照时间戳分割数据,确保训练集的特征只能用到过去的信息,绝对不能包含未来的目标值。

你手动特征选择得到的0.76 roc_auc,才是模型真实能力的体现;而0.996的分数只是信息泄露带来的虚假繁荣,完全不能用于实际部署。

内容的提问来源于stack exchange,提问作者Harish Rajula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:57:17