2.3 特征工程还要不要


2.3 特征工程还要不要

本节摘要:深度学习减少了特征工程负担,并没有把负担降到零。SOURCE 仍把外生特征(节假日、天气、促销)写成可显著提高性能的项,并把差分、滞后、滚动统计列为时间序列变换。端到端与手搓特征是对照,不是替代关系:网络擅长局部形态,人擅长把日历和已知规则变成通道。

核心问题

阅读完本节,你应当能够:

  1. 列出滞后、滚动统计、日历、外生四类特征各自补的是网络哪块盲区
  2. 说明已知未来的协变量和未知未来的协变量为什么不能同等对待
  3. 设计一次“纯序列 vs 序列加日历”的对照,用同一模型说话
  4. 避免把目标变量的未来滚动统计做进当前时刻的特征

一、自动特征提取到底自动了什么

SOURCE 说传统方法要人工设计特征,CNN 和 RNN 能从原始序列学层次化特征,包括趋势、周期、季节、异常。这句话的前半真,后半容易被听成“什么都不用做”。网络自动的是从数值形态里抠模式:日双峰的形状、升温后的负荷抬升。它不会自动知道明天是春节调休、不会自动知道港口有台风预警。这些是日历和事件,存在于序列之外。

变电站负荷的工作日/周末差异,纯序列模型用足够长的窗口也能慢慢摸到“每七天一个坑”。但调休会把七天节奏打乱,纯序列会在调休日集体犯错。把“是否工作日、是否调休”做成已知未来的协变量,等于把规则从数据里抽出来交给模型。这不是开倒车,是把确定性规则从学习问题里拿掉,让容量去学那些规则解释不了的残差。

我把特征分成四类,和网络能力对照:

滞后特征 → 网络窗口已经覆盖的,可能冗余 滚动统计 → 给短窗口补长尺度摘要 日历特征 → 网络难以从数值里读出的规则 外生/事件 → 序列里尚未发生或稀疏的冲击

图 端到端与手搓特征的分工

图 端到端与手搓特征的分工

二、滞后与滚动:和窗口重复时就删

滞后特征把 x[t-k] 当列。对 MLP 这是唯一的时间入口;对 RNN/TCN,窗口里已经有这些值,再做一份滞后表常常是重复。例外是:你想把很远的某个定点(去年今日)喂给短窗口模型,窗口本身够不着。这时滞后是压缩长历史的办法,不是复古。

滚动均值、滚动标准差、滚动最大最小,SOURCE 明确列出。它们给模型一个“最近这段有多吵、水平在哪”的摘要。短窗口 TCN 看不到四周的尺度,滚动四周均值就有用。泄漏点在于:滚动统计的窗口右端若包含当前要预测的目标,等于把答案的统计量提前给了模型。正确做法是滚动窗口严格停在 t,预测 t+1 及以后。

差分作为特征而不是替代原序列,有时两边都留:原序列保留水平,差分通道强调变化。这比只留差分更利于多步。只留差分时,模型对“现在是 800 还是 1200”没感觉,长 horizon 容易漂。

特征 给谁补盲区 何时冗余 泄漏风险
近滞后 MLP RNN/TCN 窗口内
远滞后如年同比 短窗口深度 窗口已跨年
滚动统计 短窗口、要尺度 窗口已很长 右端含未来则高
日历 所有模型 节奏极规则且无调休 把测试年日历算错
已知未来协变量 班期、节假日 把未知当已知 极高
未知未来协变量 需先预报再当特征 误差会传入

三、协变量:已知未来和未知未来必须拆开

天气、促销、节假日被 SOURCE 当作外生特征的例子。三者法律地位不同。节假日在预测时刻是已知的。促销若已经排期,也是已知的。明天的气温在做日前负荷预测时,往往只有预报值,不是真值。训练若用观测气温、上线用气象预报,分布不一致,深度会把“完美气温”当拐杖,上线就瘸。对照实验:训练也用当时能拿到的预报,不要用事后观测冒充。

多模态(文本、图像)SOURCE 列为深度相对统计的优势。港口公告、卫星云图可以进模型,但要问延迟:公告若在吞吐量已经掉下去之后才发出,它解释过去,预报不了未来。特征的时间戳必须对齐到决策时刻能用的信息集,这叫信息集约束,比网络结构更先。

特征选择在深度里被低估。把几十条吵通道拼进去,注意力会分给噪声。我倾向先上:原始序列 + 工作日/节日 + 一两个强外生,对照纯序列;有增益再加。一次加二十个,你无法归因。

⚠️ 常见坑:用目标未来值的滚动均值当特征。报表好看,上线立刻露馅。
💡 关键直觉:端到端省的是“从形态里抠波峰”的人工,省不掉“把已知规则写成通道”的人工。

概念上,一个决策时刻 t 的合法输入长这样:

合法: x[<=t], 日历[t+1..t+H], 已排期促销[t+1..t+H], 当时天气预报 非法: x[t+1], 观测天气[t+1], 含 t+1 的滚动均值, 事后修订的班期

四、一次只加一类特征的对照日历

端到端神话最容易让人一次把滞后、滚动、日历、天气、文本全拼进去。结果验证好了,不知道是节日救的还是网络救的。对照日历建议四步,每步锁住模型族和划分。

第一步纯序列窗口。第二步只加日历:工作日、节日、调休、小时正弦余弦。若这一步已经把星期残差削平,后面的深度容量应减小,而不是加大。第三步加已知未来:班期、已宣布检修。第四步才加未知未来的当时预报。每步只看测试段同一主指标的差值。差值为负就回退,不要留着“也许集成时有用”的通道。

滚动统计的泄漏用一句口号检查:这个数字在决策时刻的人能不能算出来。算不出来,就是含未来。去年今日滞后能算出来,合法。含明天的滚动均值,人算不出来,非法。文本公告的时间戳同理:人在 t 时刻读得到,才进 t 的输入。

MLP 对近滞后敏感,因为那是它唯一的时间入口;TCN 窗口内近滞后冗余。所以“要不要滞后”没有统一答案,要对照族。特征工程节必须和第 4 章交叉引用:换族等于换哪些特征是冗余的。把特征表写成与族无关的永久清单,会把冗余通道继续喂给注意力。

SOURCE 仍把外生、滞后、滚动、差分列在变换清单里,是因为自动特征提取吃的是形态。规则、稀疏事件、远尺度摘要,仍是人的活。承认这一点,不是保守,是把容量留给残差。

五、特征与模型族绑定

近滞后对 RNN/TCN 窗口内常冗余,对 MLP 却是唯一时间入口。所以“要不要滞后”没有与族无关的永久答案。换族等于重评冗余。远滞后和滚动摘要给短窗口补长尺度,合法条件是右端停在 t。已知未来与未知未来拆槽,训练特征必须来自决策时刻信息集。一次只加一类:纯序列、日历、已知未来、当时预报,每步看同一主指标差值,为负则回退。SOURCE 仍列外生滞后滚动差分,因为自动提取吃的是形态,规则和稀疏事件仍是人的活。把容量留给残差,不是保守。

六、端到端省的是抠波峰,省不掉写规则

工作日调休会打乱七天节奏,纯序列会在调休日集体犯错。把调休写成已知未来通道,等于把确定性规则从学习问题里拿掉。这不是开倒车。滚动四周均值给短窗口补尺度,但右端一旦含目标未来就是泄漏。口号:这个数字在决策时刻的人能不能算出来。算不出来就非法。文本公告时间戳同理。

特征与族绑定:换到 TCN 后近滞后常删;换到 MLP 后近滞后常留。把特征表写成与族无关的永久清单,会把冗余通道继续喂给注意力。对照日历四步必须留下差值日志,才能回答天气到底有没有增益。SOURCE 把外生特征写成可显著提高性能,前提是合法且相关。吵通道先被学会,是多变量反例,不是让你把通道加得更多。

问题:日历特征会不会让网络变懒、学不会形态?

会,而且有时这是好事。确定性规则被通道拿走后,容量去拟合规则解释不了的残差。若你希望网络“自己发现春节”,小样本上它更可能记住训练年的几个尖峰日期,换一年调休日就错。对照纯序列与加日历,星期残差削平就减小容量,不要加大。远滞后年同比给短窗口补长尺度,窗口已跨年则冗余。滚动统计的合法边界是决策时刻人能算。促销已排期进已知未来槽;气温进当时预报槽。训练用观测、上线用预报,是最常见的协变量作弊,验证会很准,上线瘸。

把冷库、变电站、港口三条线在特征上的取舍写死,避免“端到端”变成空话。冷库合法特征通常是滞后一到四拍、小时正弦余弦、开门事件;天气若库房封闭就别硬加。变电站在日历之后才轮到气温预报,预报必须是日前能拿到的那份,不是事后观测。港口班期进已知未来槽,台风进事件掩码,景气当慢通道,三者不要揉成一个“外部因素”列。三条线的对照都是:纯序列、加规则通道、再加预报通道,每步同一主指标。规则通道已经削平星期残差时,减小网络容量,把容量留给真正的残差冲击。人能在决策时刻算出来的才合法,算不出来的滚动均值和事后风速一律剔除。特征表随模型族重评冗余,近滞后在卷积窗口里常删、在全连接里常留。这样写进数据契约,第 4 章换族才不会把噪声通道继续往前带。

本章回顾

  • 自动特征提取的是形态,不是日历和稀疏事件
  • SOURCE 仍列外生、滞后、滚动统计、差分,端到端不是零特征
  • 近滞后对 RNN/TCN 常冗余,远滞后和滚动摘要仍有用
  • 滚动窗口右端停在 t,禁止含目标未来
  • 已知未来与未知未来协变量拆开,训练特征必须来自决策时刻信息集
  • 先少通道对照,再加,避免噪声通道稀释注意力

下一章从全连接讲起:为什么把窗口拍扁送进 MLP 会丢掉顺序,以及序列模型真正要对抗的硬伤是什么。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U