4. 机器学习与深度学习时序模型

在金融时序预测中,模型选择从来不是“越复杂越好”,而是“归纳偏置与数据结构是否匹配”。线性回归假设特征与目标近似线性可加;树模型擅长捕捉非线性与交互项;LSTM、GRU通过门控机制记忆长期依赖;Transformer则用自注意力直接建模任意距离的依赖关系。理解这五类模型的核心原理与适用边界,是后续判断“模型是否漂移、是否需要重训”的前提。

一、核心原理:五类模型的归纳偏置

线性回归把预测写成特征的加权和,训练目标是最小化残差平方和。它的优势是可解释、训练快、方差低,在信噪比低、样本量有限的金融数据上常作为强基线。但它无法自动捕捉非线性与交互,遇到波动率聚集、 regime 切换时容易系统性偏差。

树模型(如XGBoost、LightGBM)通过递归划分特征空间,天然处理非线性、缺失值与特征交互。它对特征尺度不敏感,能输出特征重要性,适合横截面因子与量价特征混合的场景。但树模型对时序外推能力弱,无法预测训练集目标范围之外的取值,且对分布漂移敏感。

LSTM与GRU属于循环网络,通过门控决定信息的遗忘与保留。LSTM有输入门、遗忘门、输出门,参数量更大;GRU合并为更新门与重置门,训练更快、小样本下更稳。二者都假设时间步之间存在顺序依赖,适合单序列或少量序列的时序建模。

Transformer用自注意力计算任意两个时间步的关联权重,配合位置编码保留顺序信息。它并行度高、长程依赖建模强,但参数量大、对数据量要求高,在金融小样本场景下容易过拟合,且注意力权重未必稳定可解释。

五类模型能力对比:非线性 · 长程依赖 · 可解释性 · 数据需求 · 漂移敏感度 线性回归 非线性:低 长程依赖:弱 可解释性:强 数据需求:低 漂移敏感:中 树模型 非线性:强 长程依赖:弱 可解释性:中高 数据需求:中 漂移敏感:高 LSTM / GRU 非线性:强 长程依赖:强 可解释性:弱 数据需求:中高 漂移敏感:中高 Transformer 非线性:很强 长程依赖:很强 可解释性:弱 数据需求:很高 漂移敏感:高 金融时序数据特征 低信噪比 · 非平稳 · 波动率聚集 · regime切换 样本量有限 · 特征共线性 · 交易成本与滑点 标签自相关 · 未来信息泄露风险高 → 模型越复杂,越需要漂移监控与重训策略

二、方法流程:从特征到预测的标准化管线

无论选择哪类模型,金融时序预测的流程都应遵循“防泄露、可复现、可监控”三原则。典型流程如下:

  1. 数据对齐与清洗:统一时间戳、处理停牌与缺失、对齐不同频率的宏观与量价数据。
  2. 特征工程:构造滞后收益、滚动波动率、动量、换手率、行业哑变量等;所有滚动统计必须只用历史窗口。
  3. 标签构造:预测未来N期收益或方向,注意标签与特征之间的时间间隔,避免未来函数。
  4. 时序切分:使用滚动窗口或扩展窗口,训练集、验证集、测试集严格按时间先后划分。
  5. 模型训练与调参:线性回归用正则化控制过拟合;树模型控制深度与学习率;深度模型用早停与Dropout。
  6. 滚动回测:在多个历史窗口上重复训练与预测,评估稳定性而非单次表现。
  7. 漂移监控与重训触发:监控特征分布、残差分布与预测误差,超过阈值则触发重训。
在金融场景中,验证集必须按时间切分。随机K折会导致未来信息泄露,使回测结果虚高,这是新手最常见的错误之一。

三、案例场景:同一因子集上的五模型对比

假设我们使用某股票池2018—2024年的日频数据,特征包括20日动量、20日波动率、换手率、市盈率分位、行业哑变量,标签为未来5日收益方向。下表给出五类模型在同一滚动回测框架下的典型表现与适用建议:

模型 非线性 长程依赖 可解释性 数据需求 漂移敏感度 适用场景
线性回归 低 弱 强 低 中 基线、因子归因、小样本
树模型 强 弱 中高 中 高 横截面选股、特征交互
LSTM 强 强 弱 中高 中高 单序列趋势、波动预测
GRU 强 强 弱 中 中高 小样本时序、快速迭代
Transformer 很强 很强 弱 很高 高 多序列、长历史、大算力

一个常见的训练配置示例如下,注意其中时间序列交叉验证与早停的设置:

# 以LightGBM为例的滚动训练伪代码
for train_end, test_end in rolling_windows:
    X_train, y_train = build_features(train_end)
    X_val, y_val = build_features(val_end)
    model = LGBMClassifier(
        n_estimators=500,
        learning_rate=0.03,
        max_depth=5,
        subsample=0.8,
        colsample_bytree=0.8,
        early_stopping_rounds=50
    )
    model.fit(X_train, y_train,
              eval_set=[(X_val, y_val)],
              eval_metric='auc')
    pred = model.predict_proba(X_test)[:, 1]
    monitor_drift(X_test, pred, y_test)

四、误区与复盘:模型漂移的常见陷阱

误区一:用随机切分评估时序模型。随机K折会让模型“看到未来”,回测AUC虚高,实盘迅速失效。必须使用滚动或扩展窗口。

误区二:只看预测误差,不看特征分布。模型漂移往往先发生在特征侧。应同时监控PSI、KS等分布指标,而非只盯MSE。

误区三:深度模型一定优于线性模型。在低信噪比金融数据上,LSTM/Transformer常因过拟合而跑输正则化线性回归。复杂度必须由数据量支撑。

误区四:重训频率越高越好。频繁重训会引入噪声与交易成本,且可能追逐短期波动。应结合漂移检测结果与策略换手约束决定重训时机。

复盘时建议记录每次重训前后的特征分布指标、验证集误差、实盘滑点与换手率,形成可追溯的模型生命周期日志。只有把“模型选择”与“漂移监控、重训策略”放在同一框架下,才能让机器学习与深度学习模型在金融时序中真正产生稳定价值。