Zubnet AI学习Wiki › Cross-Validation
训练

Cross-Validation

别名:K折交叉验证、留一法
一种在没有足够数据划分单独测试集时评估模型性能的技术。K折交叉验证将数据分成K个相等的部分,在K−1个部分上训练并在剩余部分上评估,轮转K次,使每个数据点都被用于训练和评估。所有K折的平均分数比单次训练/测试划分给出更可靠的性能估计。

为什么重要

当数据稀缺时,交叉验证至关重要——如果你只有500个样本,留出100个用于测试意味着减少20%的训练数据。交叉验证使所有数据同时用于训练和评估。它还给你一个置信区间(折间方差)而不是单个数字,告诉你模型的性能有多稳定。

深度解析

5折CV:将数据分成5个部分。在第1-4部分上训练,在第5部分上评估。然后在第1-3+5部分上训练,在第4部分上评估。对所有5折重复此过程。对5个评估分数取平均。结果比单次80/20划分更可靠,因为它对特定划分具有鲁棒性——一个“幸运”或“不幸”的测试集不会歪曲结果。折间标准差表示可靠性。

分层K折

对于类别不平衡的分类问题(罕见疾病:5%阳性,95%阴性),随机划分可能将所有阳性样本放入一个折中。分层K折确保每个折具有与完整数据集相同的类别分布。这防止了出现没有阳性样本的折(对评估无用),并为少数类提供更可靠的性能估计。分类问题始终应使用分层K折。

何时不使用它

交叉验证计算成本高(K倍的训练成本),且很少用于大模型。对一个7B模型进行5次微调以做5折CV是不切实际的。对于LLM,单独的留出验证集是标准做法,因为:数据集足够大,可以进行可靠的单次划分评估;训练成本高;模型的预训练表示使其对特定训练划分不太敏感。交叉验证在使用经典机器学习模型处理小数据集时最有价值。

相关概念

← 所有术语
ESC