交叉验证把数据分成 K 份,轮流用其中一份做验证、其余做训练,最后平均结果。它的价值在于充分利用有限数据评估模型泛化能力,比单次划分更稳定,尤其适合样本量不大的场景。
最常见的误区是数据泄漏。若在划分之前做了标准化、特征选择或目标编码,验证集的信息会渗入训练过程,导致评估偏乐观。正确做法是把预处理放进交叉验证的每一折内部。
时序数据不能用随机 K 折。随机打乱会让未来信息泄漏到过去,评估结果虚高。应该用时间序列切分,训练集始终早于验证集,或采用滚动窗口的前向验证方式。
推荐系统还要注意用户维度切分。同一用户的行为若同时出现在训练和验证集,模型可能记住用户而非学到泛化规律。按用户分组划分,保证验证集用户未在训练中出现,评估更接近冷启动真实表现。
K 的选择是偏差方差权衡。K 越大每折训练数据越多、偏差越小,但计算开销和方差增大。常见取五或十,数据量充足时单次留出验证也够用,交叉验证主要用于调参阶段。