建模方法与策略

建模方法与策略


一、时间序列竞赛与传统时序建模的差异

维度 说明
传统时序建模 对单一时间序列进行预测,强调时间依赖性
竞赛时序建模 数据集中包含多只股票的交易机会混合,每条记录是一次交易机会而非固定时序
核心区别 竞赛中不是对某只股票做连续预测,而是对触发交易规则的时刻做行为判断
建模目标 预测Action(买入/卖出/持有),而非直接预测价格或收益率

二、Action标签的构建策略

维度 说明
Baseline方法 Response > 0 时 Action = 1,否则 Action = 0
回归方法 直接对Response进行回归预测,再根据回归结果推导Action,比简单阈值更精细
多标签分类 同时对多个时间维度的Response进行分类,利用不同时间尺度的信息
强化学习思路 构建强化学习模型最大化评分指标,但在当前数据量下有监督方法更有效
优化方向 可尝试将Weight * Response作为额外输出目标,与Response预测联合优化

三、时间序列交叉验证策略

维度 说明
时序划分原则 不能随机打乱,必须按时间顺序划分训练集和验证集
滚动窗口验证 用前N天训练,后M天验证,逐步滚动,模拟真实交易场景
扩展窗口验证 训练集随时间扩展(如第1-100天、第1-200天、第1-300天),验证集紧随其后
Gap设置 训练集和验证集之间设置间隔(Gap),防止信息泄漏
多折验证 5折时序交叉验证,每折的训练/验证时间区间不重叠

时序样本切分策略(带Gap)

维度 说明
时序划分原则 不能随机打乱,必须按时间顺序划分
Gap设置 训练集和验证集之间设置时间间隔,防止信息泄漏
Web Traffic实例 训练数据截止到9月10日,测试数据从9月13日开始,中间有3天Gap
Gap的影响 对于强自相关的序列,Gap设置至关重要
滚动窗口 用前N天训练,后M天验证,逐步滚动模拟真实预测场景

四、树模型在时序竞赛中的应用

维度 说明
LightGBM 处理结构化数据效率高,支持时序交叉验证(lgb.cv),可输出每折AUC及方差
XGBoost 与LightGBM类似,正则化更强,适合小数据集
CatBoost 自动处理类别特征,对匿名特征有一定优势
特征重要性 树模型可输出特征重要性,辅助理解哪些特征对预测最有价值
时序特性 树模型本身不捕捉时间依赖,需通过特征工程引入时间信息

五、深度学习模型在时序竞赛中的应用

维度 说明
LSTM/GRU 捕捉时间序列的长期依赖关系,适合单只股票的连续预测
Transformer 自注意力机制可捕捉全局时间依赖,但需要大量数据
MLP 简单多层感知机,对每条记录独立预测,不依赖时间顺序
混合模型 树模型 + 深度学习模型集成,利用各自优势
资源考量 深度学习需要GPU,树模型CPU即可,根据资源选择

六、特征工程在时序竞赛中的关键作用

维度 说明
滞后特征 构造过去N天的特征值作为当前预测的输入
滚动统计 计算过去N天的均值、标准差、最大/最小值等统计量
时间差特征 计算当前时刻与上次交易的时间间隔
交叉特征 多个特征之间的交互(如特征0 * 特征1、特征0 / 特征2)
Tag分组特征 根据features.csv的Tag标签,对同组特征进行聚合

趋势特征衍生

维度 说明
核心思想 用短期统计量与长期统计量的差值/比值来表征趋势强度
短期-长期差值 trend_feature = recent_week_median - historical_median
短期-长期比值 trend_ratio = recent_week_median / historical_median
典型应用 Web Traffic TOP8方案中,计算不同周流量中位数减去历史112天中位数
核心优势 将趋势信息显式编码为特征,弥补GBT等模型对趋势捕获能力不足的问题

七、模型集成在时序竞赛中的重要性

维度 说明
集成收益 模型集成占30%重要性,超过超参数调优(20%)
多样性来源 不同模型结构(树模型+深度学习)、不同超参数、不同随机种子、不同Fold
简单投票 两个得分5000+的模型直接投票/平均,可得到6000+的分数
加权平均 根据各模型在验证集上的表现分配权重
Stacking 将Base模型的预测结果作为Meta模型的输入特征

八、复合预测策略(简单模型+复杂模型)

维度 说明
核心思想 将复杂模型与简单模型结合,简单模型拟合趋势/固有值,复杂模型拟合残差
典型组合一 线性回归拟合趋势 → 残差用NN或GBT拟合
典型组合二 移动平均/中位数模型拟合固有值 → 残差用DNN拟合
典型组合三 ARIMA/Prophet拟合趋势+季节性 → 残差用GBT拟合
中位数模型+DNN Web Traffic TOP8方案的核心策略
预测还原 final_pred = simple_model_pred + complex_model_residual_pred
核心优势 简单模型处理趋势/固有值,复杂模型专注于残差中的非线性模式

九、SMAPE作为损失函数

维度 说明
核心原则 损失函数应与评价指标一致,使模型直接面向评价指标优化
实现方式 当比赛评价指标为SMAPE时,NN模型的损失函数直接设为SMAPE
代码示例 loss = 2 * torch.abs(y_pred - y_true) / (torch.abs(y_pred) + torch.abs(y_true) + eps)
除零保护 分母加入极小值eps(如1e-8)防止除零
核心优势 模型优化方向与评价标准完全一致

十、DNN时序架构(多输入+Skip Connection)

维度 说明
多输入设计 main_input(动态特征)+ side_input(静态特征)+ aux_input(辅助特征),需使用Keras Functional API
Skip Connection 将concat后的原始输入x0与经过Dense层后的x通过短接连接
网络结构 Dense → BN → Dropout → Dense → BN → Dropout,常规全连接堆叠
Embedding处理 类别特征经Embedding后需Flatten才能与数值特征Concatenate
动态特征选择 Web Traffic TOP8方案中DNN仅使用8个趋势型动态特征,效果出奇地好
架构建议 参考Kaggle上类似场景的NN结构,直接迁移并微调

十一、取整技巧(整数型目标变量后处理)

维度 说明
问题背景 流量/销量等目标变量本质是整数,但NN回归输出为浮点数
阈值截断 预测值小于offset*offset时直接置为0,消除极小预测值
取整操作 对最终预测结果做 round() 取整
效果 Web Traffic方案中,取整后SMAPE显著降低
核心优势 零成本的后处理技巧,对整数型目标变量的预测任务普遍有效

十二、神经网络交叉验证集成

维度 说明
核心思路 训练多个NN模型(不同随机种子/不同fold),对预测结果取中位数
Web Traffic实例 设置NBAG=20,训练20个NN模型,最终取20个预测结果的中位数
与Snapshot Ensemble Snapshot Ensemble是另一种NN集成方法:训练100轮,取最后10轮的模型快照做集成
NN的随机性问题 NN训练过程中随机性对结果影响明显,集成可有效降低方差
实现方式 final_pred = np.median(predictions, axis=0)

十三、时序竞赛的做赛节奏

维度 说明
初期 赛题理解 + Baseline跑通,精度收益最大
中期 数据分析 + 特征工程 + 模型选择,持续精度提升
后期 模型集成 + 超参数调优,精度收益逐渐减小
调参时机 调参应放在最后阶段,不是首要步骤
验证优先 每次尝试都应在验证集上评估,确认有效后再提交线上

十四、深度学习时序模型进阶

N-BEATS

维度 说明
核心思想 纯前向网络堆叠,每层包含两个残差分支:趋势分支(多项式)和季节性分支(傅里叶)
双残差结构 层间残差连接(反向) + 层内残差连接(前向)
可解释性 趋势和季节性分量可单独可视化
竞赛表现 M4竞赛冠军方案,单变量预测SOTA
适用场景 单变量时序预测,趋势和季节性明显的序列

N-HiTS

维度 说明
核心改进 在N-BEATS基础上引入多速率信号采样和层级结构
多速率 不同层处理不同频率的信号(高层低频/趋势,低层高频/细节)
优势 比N-BEATS参数更少,长序列预测更准确
适用场景 长序列多步预测

PatchTST

维度 说明
核心思想 将时序数据切分为Patch(类似ViT对图像的处理),用Transformer建模
Patch切分 将长度L的序列切为N个长度P的Patch,步长S
通道独立 每个变量独立建模,避免多变量间的噪声干扰
优势 比传统Transformer时序模型更高效,长序列预测SOTA
适用场景 多变量长序列预测

TimesNet

维度 说明
核心思想 将1D时序变换为2D张量,用2D卷积捕捉多周期内和周期间变化
FFT周期发现 用快速傅里叶变换自动发现序列中的主要周期
2D卷积 在2D张量上用Inception模块提取特征
优势 同时捕捉周期内模式(行方向)和周期间模式(列方向)
竞赛表现 2023年时序预测榜单SOTA

Informer / Autoformer / FEDformer

模型 核心改进 适用场景
Informer ProbSparse注意力,O(LlogL)复杂度 长序列预测
Autoformer 自相关机制替代自注意力,分解趋势+季节 趋势季节性明显
FEDformer 频域注意力,傅里叶/小波变换 频域特征明显

时序深度模型选择决策

场景 推荐模型 理由
短序列单变量 LSTM / N-BEATS 成熟稳定
长序列多步预测 PatchTST / N-HiTS 长序列SOTA
多周期序列 TimesNet 自动发现周期
多变量预测 PatchTST(通道独立) 避免变量间噪声
趋势季节性明显 Autoformer / N-BEATS 显式分解趋势季节
快速实验 LSTM / GRU 实现简单