时间序列预测核心在于数据准备、特征构造和模型对齐时间逻辑。需严格时间对齐(滑动窗口切片、TimeSeriesSplit交叉验证)、注入业务节奏的特征工程(时间特征、滚动统计、外部变量)、分层建模(ARIMA→XGBoost→TCN/Informer)及滚动评估(Rolling Forecast Origin、MASE、置信带)。

时间序列预测在机器学习项目中,核心不在于堆模型,而在于“数据怎么准备、特征怎么构造、模型怎么对齐时间逻辑”。跳过这三步直接套LSTM或Prophet,大概率跑不通或效果差。
一、时间对齐:确保每个样本有明确的“过去窗口”和“未来目标”
时间序列不是普通表格数据——它的顺序不能打乱,样本之间有严格时序依赖。关键操作是滑动窗口切片:
- 用固定长度(如前60个时间点)作为输入X,下一个点(第61个)或未来多点(61–65)作为y;
- 必须保证训练集、验证集、测试集按时间严格分段,不能随机切分,否则引入未来信息泄露;
- 推荐用TimeSeriesSplit(sklearn)做交叉验证,它按时间顺序分块,避免倒序污染。
二、特征工程:不止滞后项,还要注入业务节奏感
单纯加lag_1、lag_7太单薄。真实场景中,周期性、突变点、外部变量才是提升的关键:
- 基础时间特征:小时、星期几、是否节假日、是否月末——用pd.to_datetime().dt快速提取;
- 滚动统计:7天均值、14天标准差、30天最大值变化率——反映趋势与波动惯性;
- 外部变量对齐:比如天气数据、促销日历、上游系统延迟指标,务必按时间戳严格merge,缺失要插值或标记为NaN并显式处理。
三、模型选择与适配:别迷信深度学习,先跑通基线
从简单到复杂推进,每一步都可评估、可解释:
- 第一层:用ARIMA或ExponentialSmoothing跑通单变量基线,确认数据平稳性、季节性是否被识别;
- 第二层:用XGBoost/LightGBM建模(把滑动窗口特征当行),支持多变量+非线性,训练快、特征重要性直观;
- 第三层:仅当序列长(>1000)、模式高度非线性且GPU可用时,再上TCN或Informer类模型——注意输入必须归一化,且验证时要用multi-step rollout而非teacher-forcing。
四、评估与上线:用滚动预测代替单次快照
真实部署不是预测“下一点”,而是持续滚动预测。评估也要匹配这个逻辑:
- 用Rolling Forecast Origin方式评估:每次用截至t的数据训练,预测t+1,再加入真实t+1值,滑动更新;
- 指标选MAE+MAPE+MASE(尤其MASE,对量纲敏感型业务更公平);
- 上线前加“预测置信带”:用分位数回归(LightGBM支持)或Monte Carlo dropout(LSTM),让业务方知道不确定性在哪。
基本上就这些。不复杂但容易忽略——真正卡住项目的,往往不是模型调参,而是时间切片没对齐、节假日特征没编码、或者测试集偷偷混入了未来数据。










