跳到主内容
快讯直播
AI智模界
AI 词典

留一法:样本再少,也要让每个样本当一次考官

一句话定义:留一法(Leave-One-Out,简称 LOO)是交叉验证(Cross-Validation)最极端的形式:手上只有 N 个样本,就训练 N 个模型,每次留出 1 个样本当验证集,剩下 N−1 个全部用来训练,最后把 N 次的验证结果平均。

原理:轮流让一个人离开

想象一个只有八个人的小合唱团要考核音准。人太少,随便抽两个人当“考官”,剩下的六个人水平未必代表整体;抽到的两个人也可能恰好是唱得最好的或最差的。最公平的办法是:每次只让一个人独唱,其他七个人和声,然后换下一个人独唱,轮流八遍,最后看八次独唱的平均分。

留一法做的就是这件事。它把“验证集”压到最小,只有1个样本,从而让每次训练都用上几乎全部数据。样本本来就少的时候,这一点很关键:别的划分方法会“浪费”掉一部分数据不参与训练。

与相邻概念的区别

最常见的邻居是 k 折交叉验证(k-fold Cross-Validation):把数据切成 k 份,每次留一份做验证。留一法其实就是 k = N 的极端情形。另一类是单次划分(train/validation split),只切一次,最省算力,但结果波动最大。

维度单次划分k 折交叉验证留一法
训练次数1 次k 次(常取 5 或 10)N 次
每次训练用多少数据可能只有六七成大部分几乎全部(N−1)
估计偏差偏大中等最小
结果稳定性差,换个随机种子就变较好各次结果高度相关,平均后方差反而不一定小
计算成本最低中等最高

注意最后一行:留一法的 N 个训练集彼此只差一个样本,几乎一模一样,所以 N 次得分高度相关。平均之后,它并不能像想象中那样通过平均来大幅降低方差。这一点常被误解。

代价与适用场景

代价很直接:要训练 N 次。样本上千,普通模型就跑不动了。所以留一法的主场是“样本极少”的场合:十几例罕见病例、几十组材料配方、几十次实验数据。这时 k 折的每一折都太小,估计出来的分数很不可靠,而留一法还能撑住。

两个实用提醒:

  • 有些模型有闭式解或近似捷径(如线性回归、部分核方法),可以一次拟合就推出所有留一结果,不必真的训练 N 次。用之前值得查一下现成实现,别自己硬跑。
  • 留一法假设样本可以互换。时间序列千万别用,它会用“未来”预测“过去”;类别极不平衡时也要小心,某个留出的正样本可能让训练集里一个正类都不剩。

一句话总结:留一法是样本稀少时“物尽其用”的笨办法,公平、偏差小,但结果相关性高、算力代价大。数据够多时,老老实实用 k 折更划算。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。