清晨七点半的闹钟响起时,你顺手划开手机天气 APP—— 未来一周的温度曲线正随着日期缓缓起伏,周一到周五的早高峰通勤时间里,导航软件提示的拥堵时长总在 7:45 左右达到峰值,每月发薪日后的几天,购物 APP 的推送消息总会多几分 “精准”…… 这些藏在时间里的规律,在 AI 的世界里,都需要通过 “时间序列特征构造” 这把钥匙来解锁。

对于 AI 而言,时间序列数据从来都不是简单的数字排列。当我们把每天的气温、每小时的交通流量、每月的销售额记录下来,这些带着时间戳的数据就像一串沿着时间轴串起的珠子,每一颗都与前后的珠子有着千丝万缕的联系。这种 “特殊性” 正是时间序列的灵魂所在:顺序是不可撼动的法则,你不能把周一的交通流量和周五的随意调换,否则数据便失去了意义;自相关性是隐藏的纽带,今天的气温大概率与昨天相关,这便是 “前一天的温度影响当天温度” 的直观体现;趋势性是时间的脚印,过去十年的年均温逐年微升,这便是时间留下的长期轨迹;而季节性则是循环的旋律,每到冬季供暖季,用电量总会比夏季高出一截,每到春节前,快递量总会迎来爆发 —— 这些特性,决定了我们不能用处理普通数据的方式对待时间序列,而 “特征构造”,就是为时间序列量身定制 “语言” 的过程。

若把时间序列比作一本日记,“基本特征” 就是日记里最直观的标注。当我们拿到一串连续的销售数据时,首先要做的,就是给每个数据点贴上 “时间标签”:这是哪一年(2024)、哪一个月(12 月)、哪一天(25 日)、星期几(星期三),这些标签本身就是重要的特征 ——12 月的销售额往往高于其他月份,因为有圣诞节和年末促销;周末的销售额通常比工作日高,因为人们有更多时间购物;而像 1 月 1 日(元旦)、10 月 1 日(国庆)这样的节假日,更是需要单独标记的 “特殊节点”,它们的消费模式与普通日子截然不同。还有 “月初 / 月末” 这样的隐性时间特征:很多公司在月末发薪,这会带动月末的消费增长;而月初人们刚交完房租、水电费,消费意愿可能会有所下降 —— 这些藏在 “年、月、日” 里的细节,是 AI 理解时间序列的第一步,就像我们通过日期知道 “今天是否需要上班” 一样,AI 通过这些基本特征,能快速判断 “这个时间点的数据是否具有特殊性”。

当 AI 掌握了 “时间标签”,接下来就要学会 “回望过去”,这便是 “滞后特征” 的作用。想象你是一家面包店的老板,今天要准备多少面团?最直接的参考就是昨天、前天卖了多少面包 —— 昨天卖了 200 个,前天卖了 180 个,那么今天的备货量大概率会围绕这个数字波动。在 AI 眼中,这就是 “t-1”(前一天)、“t-2”(前两天)时刻的滞后特征。对于不同的场景,滞后的 “步数” 也不同:预测下一小时的交通流量,可能需要参考前 1 小时、前 2 小时的数据;而预测下一个月的销售额,可能需要参考前 1 个月、前 3 个月甚至前 12 个月的数据(因为有季节性影响)。滞后特征就像 AI 的 “记忆”,让它知道 “过去发生过什么”,从而为预测 “未来会发生什么” 打下基础。但这里有个小技巧:不是滞后步数越多越好,过多的滞后特征会让 AI “记太多东西”,反而抓不住重点,就像我们记日记,不需要把去年某天的每句话都背下来,只需要记住关键节点的信息即可。

如果说滞后特征是 “点状的记忆”,那么 “窗口统计特征” 就是 “一段时期的总结”。还是以面包店为例,只看昨天卖了 200 个面包,可能会忽略一个情况:过去一周里,有 3 天卖了 200 个以上,有 2 天卖了 150 个以下,平均每天卖 180 个 —— 这个 “过去一周的平均值”,就是窗口统计特征里的 “滚动均值”。这里的 “窗口”,就是我们选定的 “一段时间范围”:可以是过去 7 天(周窗口)、过去 30 天(月窗口),也可以是过去 24 小时(日窗口)。除了均值,我们还能计算窗口内的 “标准差”(反映数据波动大小,比如过去一周销售额波动大,说明生意不稳定)、“最大值”(过去一周卖得最好的一天是多少)、“最小值”(过去一周卖得最差的一天是多少)。窗口大小的选择,是这个过程的关键:预测每日面包销量,用 7 天窗口能反映周内规律;而预测每月销售额,用 3 个月窗口能更好地捕捉季度变化。就像我们总结 “这学期的学习情况”,不会只看某一天的成绩,而是看这一学期的平均分、最高分和最低分 —— 窗口统计特征,让 AI 从 “看单个数据” 升级为 “看一段数据的规律”。

最后,AI 还需要学会 “发现趋势与循环”,这便是 “趋势 / 季节性特征” 的价值。当我们看着过去一年的气温数据,会发现一条缓慢上升又下降的曲线 —— 从 1 月的寒冷到 7 月的炎热,再到 12 月的寒冷,这就是季节性;而如果把过去十年的气温数据放在一起,会发现每年的平均气温都比前一年高 0.1℃,这就是趋势。在特征构造中,我们会用 “移动平均线之差” 来捕捉趋势:比如用过去 30 天的移动平均线减去过去 10 天的移动平均线,如果差值为正,说明近期趋势在上升;如果差值为负,说明趋势在下降。而对于季节性,“与去年同期值的比值” 是常用的方法:今年 12 月的销售额是去年 12 月的 1.2 倍,说明今年年末的销售情况比去年好,且排除了季节因素的干扰。这些特征,让 AI 从 “看短期变化” 升级为 “看长期规律”,就像我们通过 “这几年夏天越来越热” 发现气候趋势,通过 “每年春节前快递都会变多” 熟悉季节规律一样。

其实,时间序列特征构造的本质,就是把 “时间的规律” 转化为 AI 能理解的 “数字语言”。从标注 “今天是星期几” 的基本特征,到记住 “昨天卖了多少” 的滞后特征,再到总结 “过去一周的平均销量” 的窗口统计特征,最后到发现 “每年冬天销量都会上涨” 的趋势 / 季节性特征 —— 每一步,都是在帮 AI “读懂时间”。对于专业人士而言,这是建模前的关键准备,需要根据数据特性调整窗口大小、选择合适的滞后步数;对于非专业人士而言,这更像一种 “时间思维”:当你下次看着导航软件的拥堵提示时,或许会意识到,这背后正是 AI 通过无数个 “时间特征”,为你提前规划了最优路线。时间从不说话,但它留下的痕迹,都藏在这些精心构造的特征里,等待被读懂,被利用,最终为我们的生活带来更多便利。未完待续.........

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐