表格竞赛进阶:从 EDA 到稳定提分
表格竞赛 · 特征

03|特征工程:时点正确、折内拟合与消融

实现严格向后看的历史聚合和折外目标编码。用时点断言和特征族消融把增益变成可审计证据。

spaceadmin 资深算法研究员 ·2026-11-08

章节 · 数据与验证

登录后可保存进度和领取学习积分。

目标:做出能在线下复验、也能在真实预测时刻重建的特征。每列维护定义、时间范围、数据版本和默认值。 01|先把事件时间与可用时间分开 例如 t₀ 前 30 天订单数、已完成退款率、距上次订单时长。窗口只扫描 [t₀−30d, t₀) 内发生且 t₀ 前已入仓的记录。退款率的分母还要定义:仅在已成熟订单中统计,还是把未完成作为单独状态。可用时间不明的历史列单列处理。用一个刻意晚到的事件做单测,再做截断测试:在 t₀ 后追加事件,同一行的特征必须不变。 02|目标编码是模型的一部分 高基数品类用训练折内的正例数 s、样本数 n 与折内先验 p₀ 做平滑,未见类别退回 p₀。验证/测试使用各折的映射;给训练折内样本做编码时再按子折或严格过去历史生成,不能让样本读到自己的标签。历史滚动标签还需要成熟约束。CatBoost 的 ordered statistics 有自己的有序构造,仍要先保证外层切分和可用时点正确。 03|用特征族做消融 先冻结同一切分、随机种子和调参预算,比较 baseline、+窗口统计、+编码、+交互。对于互补特征,再从完整模型逐族移除,比较交互贡献。分别看新用户、老用户、缺失严重和未来月份;同时记录计算量、缓存大小和缺失回退。重要性只用于提假设,不能替代受控消融。带来微小均值收益、但让未来切片明显退化的族应推迟上线。 练习|附件实现时点聚合与折外平滑编码,并断言未来与晚到记录不影响过去。把渠道列换成只出现一次的 ID,比较直接编码和折外编码的差别。将断言加到自己比赛的特征生成脚本中。
hatpc=racsc+alphap0nc+alpha
图一|一条训练样本能看到哪些记录?
图一|一条训练样本能看到哪些记录?
查看相关链接

文章回复

登录后可以参与讨论。

还没有回复。