Cross-Validation 交叉验证

交叉验证用未参与当前拟合的数据评价模型,目的在于估计样本外表现并限制过拟合。它不是把同一训练结果换一个指标重算。

概念解析 Explanation

交叉验证解决的不是拟合问题,而是泛化问题

模型在训练样本上表现很好,可能有两种原因:它捕捉到稳定关系;或者它记住了样本中的噪声。Cross-validation 用“当前这次拟合没有见过的数据”估计第二种风险。

它通常服务于模型选择,而不是最后一次绩效汇报。例如选择树深、正则化强度、KNN 的 、特征集合或回看窗口。若同一批数据既用于选择这些超参数,又用于报告最终样本外表现,结果仍会乐观。

Training、validation、test 三者职责不能互换

数据用途可以做什么
Training拟合模型参数估计回归系数、树分裂、网络权重
Validation选择模型和超参数比较候选模型、决定复杂度
Test模型定稿后的最终评价只在整个流程结束时使用

根据 test 结果继续改模型,test 就已经参与选择,事实上变成新的 validation set。真正独立的最终误差需要另一批未使用数据。

L2 区分三类时间与数据结构:

方法划分方式适用场景
Holdout一次划分 training / validation / test数据量足够、需要最终独立测试集
K-fold轮流用一个 fold 验证,其余训练独立同分布的横截面样本
Walk-forward只用过去训练,下一期验证,再向前滚动有时间顺序的投资策略与预测模型

Validation set 用于选择超参数和模型;test set 应在模型定稿后才使用。若根据 test 结果继续调参,它事实上已经变成 validation set。

金融时间序列不能随意打乱未来和过去。普通随机 k-fold 可能把未来信息泄漏给训练集;rolling-window / walk-forward 保留信息可得顺序,更适合回测。

K-fold 到底做了什么

K-fold 把样本分成 份。每轮使用 份训练、剩余一份验证,轮换直到每份都做过一次验证。最后对 个验证损失取平均。

较大时,每轮训练数据更多,但计算量增加,各轮结果也更相关。K-fold 适合近似独立同分布的横截面观察;它不会自动尊重时间、公司分组或同一事件产生的相关样本。

金融数据最危险的是信息泄漏

时间序列应使用 expanding window 或 rolling window:

  • Expanding:训练窗不断累积,模拟可使用全部历史;
  • Rolling:保持固定长度,只用最近时期,允许关系发生 regime change;
  • 每次验证集必须在训练期之后。

标准化、缺失值填补、PCA、特征选择等 preprocessing 也必须在每个 training fold 内拟合,再应用到 validation fold。若先用全样本计算均值或选择特征,未来信息已经泄漏。

Cross-validation 与 backtest 的关系

Cross-validation 评价候选预测模型;backtest 把最终信号连同持仓、再平衡、交易成本和约束放进历史投资流程。低 CV error 不保证策略净收益好,因为可交易性、换手和市场冲击尚未进入。

核心公式 Formula

K-fold 的平均验证损失为:

其中 是第 个 fold 作为验证集时的损失。若用均方误差:

符号 强调该预测模型没有使用 fold 的观测进行拟合。

图解 Visual

flowchart LR
    D["完整数据"] --> TR["Training:拟合参数"]
    D --> VA["Validation:选模型/超参数"]
    D --> TE["Test:最终一次评估"]
    TR --> VA
    VA -->|"定稿后"| TE

计算示例 Worked Example

五折交叉验证得到的验证 RMSE 分别为

模型 B 的训练 RMSE 仅 ,但 CV RMSE 为 ;模型 A 的训练 RMSE 为 、CV RMSE 为 。若目标是样本外预测,A 更可信。若数据有时间顺序,上述 folds 还需改为 expanding/walk-forward,不能随机把未来放进训练集。

考试要点 Exam Focus

  1. Training 拟合参数,validation 选模型,test 只做最终评价。
  2. 根据 test 结果继续调参会污染 test set。
  3. 普通 k-fold 适合近似 IID 数据;时间序列优先 walk-forward。
  4. 交叉验证估计泛化误差,不会自动修复坏特征或错误目标。
  5. 数据标准化、特征选择等步骤必须在每个 training fold 内重做,避免泄漏。

涉及科目 Appears In