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
- Training 拟合参数,validation 选模型,test 只做最终评价。
- 根据 test 结果继续调参会污染 test set。
- 普通 k-fold 适合近似 IID 数据;时间序列优先 walk-forward。
- 交叉验证估计泛化误差,不会自动修复坏特征或错误目标。
- 数据标准化、特征选择等步骤必须在每个 training fold 内重做,避免泄漏。
涉及科目 Appears In
相关概念 Related Concepts
- Hypothesis Testing 假设检验 — 样本证据与误判基础
- Test Statistics 检验统计量 — 模型比较的统计基础
- Serial Correlation 序列相关 — 时间顺序不能忽略的原因
- Historical Simulation 历史模拟 — 数据重采样的另一用途