交叉验证通过多次切分训练和验证来更稳定地估计模型性能,常见形式是 K 折。它适合样本量有限、需要充分利用数据的场景。
但交叉验证并不总适用。时间序列和推荐场景存在时间依赖,随机 K 折会让未来信息渗入训练,评估失真。此时应使用时间序列交叉验证,按时间滚动切分。
分组交叉验证也常被忽视。当同一用户或同一物品有多条样本时,应把同组样本放进同一折,否则模型会因见过同组样本而虚高。
折数选择有取舍:K 越大,每次训练数据越多,评估越稳定,但计算成本越高。常用 5 折或 10 折,数据量大时 3 折也能接受。
交叉验证的结果还应报告方差。如果各折之间指标波动很大,说明模型对数据切分敏感,泛化能力存疑,单看均值容易得出过于乐观的结论。