交叉验证(Cross-Validation)

AI TERM术语词条

Cross-Validation

基础概念 模型评测机器学习数据集AI基础

术语释义

交叉验证让数据轮流当训练集与验证集,用多轮结果的平均值估计模型真实效果,减少一次划分带来的运气成分。

交叉验证是评估模型泛化能力的常用做法。只切一次训练集与验证集时,如果恰好切到偏易或偏难的样本,分数会明显偏高或偏低。交叉验证让每份数据都当过一次验证集,再把多轮得分平均,结论更稳,也更容易判断模型学到的是规律还是训练样本本身。它也是小样本场景下最常用的评估方式,因为单独切出一份验证集会让本来就紧张的数据更不够用。

k 折是怎么跑的

  • k 折交叉验证:把数据均分成 k 份,轮流用其中一份做验证、其余做训练,跑 k 次取平均。
  • 留一法:每次只留一个样本做验证,样本极少时利用最充分,代价是训练次数等于样本数。
  • 分层抽样:切分时保持每折的类别比例与整体一致,类别不平衡时基本是必做项。
  • 分组切分:同一用户、同一设备或同一病人的记录必须落在同一折里,否则会提前泄漏答案。
  • 时间序列切分:按时间先后滚动切分,训练只用过去、验证只看未来,不能打乱顺序。

什么时候不该用

数据带时间顺序、用户维度或分组结构时,随机切分会造成信息泄漏:同一个用户的记录同时出现在训练与验证里,模型等于提前看过答案,分数虚高而线上无法复现。这类场景要改成按时间或按组切分。预处理也是同一类问题:归一化、特征筛选与缺失值填充都必须在训练折上拟合、再应用到验证折;如果在切分之前就用全量数据算均值或挑特征,验证折的信息早就渗进了训练过程,分数同样不可信。

和简单划分的区别

  • 结果稳定性:单次划分只给一个数,交叉验证给出均值与波动范围,便于判断差异是否真实。
  • 计算成本:训练次数等于折数,代价接近线性增长,大模型微调时常退化为单次划分。
  • 用途边界:交叉验证用来选模型与调参,最终测试集要留到最后只看一次。
  • 与自助法区别:自助法用有放回抽样构造训练集,适合估计小样本的稳定性,交叉验证更常用于模型选择。
  • 嵌套使用:调参用内层折、评估用外层折,两层都做交叉验证,才能避免调参过程把验证集用旧。

落到工程上,先确认数据是否存在分组或时间结构,再决定折数与切分方式;数据量足够大时,单次划分配一个独立的验证集通常已经够用,交叉验证更适合样本偏少的场景。折数增加会降低偏差,但收益递减:留一法折数最高,方差反而可能更大,常用的是 5 折与 10 折,需要按计算预算取舍。折数、切分方式与预处理流程都要写进实验记录,换一个口径,两次分数就不可比。

查看全部 79 条 →
共 9 条