“引导程序验证”(又称为“重采样交叉验证”)的程序是什么?


15

“ Bootstrap验证” /“重新采样交叉验证”对我来说是新手,但对此问题的答案进行了讨论。我收集到的数据涉及2种类型的数据:真实数据和模拟数据,其中通过替换重采样从真实数据生成给定的一组模拟数据,直到模拟数据的大小与真实数据相同。我可以想到两种使用此类数据类型的方法:(1)一次拟合模型,对许多模拟数据集进行多次评估;(2)使用许多模拟数据集中的每一个对模型进行多次拟合,每次针对实际数据进行评估。哪个(如果有)最好?

Answers:


20

简短的答案:两种验证技术都涉及训练和测试许多模型。

关于如何做到最好的长答案:这当然取决于。但是这里有一些想法可以用来指导我关于重采样验证的决策。我是化学计量师,所以这些策略以及这些术语与分析化学问题或多或少地密切相关。

为了稍微解释一下我的想法,我认为验证是衡量模型的质量,而培训则是衡量模型的参数-这导致了对其他所有类型的衡量的强大推论。

这些方法在验证方面有两种不同的观点:

  1. 重采样验证的传统观点是:重采样的数据集(有时称为替代数据集或子集)实际上与原始(真实)数据集相同。
    因此,适合替代数据集的“替代模型”实际上与适合整个真实数据集的模型相同。但是一些样本没有包含在替代数据集中,该模型独立于这些。因此,我将那些遗漏的或超出引导范围的样本作为代理模型的独立验证集,并将结果用作整个数据模型的近似值。
    但是,替代模型通常并不能真正等同于整个数据模型:用于训练的样本更少(即使是自举,不同样本的数量也会更少)。只要学习曲线不断增加,代理模型平均就比整个数据模型差一点。这是众所周知的重采样验证的悲观偏见(如果最终得出乐观偏见,则通常表明剩余/ oob测试集与模型无关)。

  2. 第二个观点是,重新采样的数据集是整个数据集的扰动版本。检查代理模型(或其对遗漏/ oob样本的预测)与整个数据模型的不同之处,然后就可以得出关于训练数据的模型稳定性的信息。
    从这个角度来看,替代模型就像是重复测量。说您的任务是测量整列矿石中某些矿物的含量。矿石不均匀。因此,您需要从不同位置获取物理样本,然后查看整个内容及其在整个火车上的变化。同样,如果您认为模型可能不稳定,则可以查看替代模型的整体性能和变化。

n
我通常对案例进行重采样,例如一个案例=一名患者的所有测量值。然后,所有患者的训练数据中都没有测量结果。如果您知道一个案例的度量比其他案例的度量更相似(或者至少不能排除这种可能性),这将很有用。

并不是说重新采样验证可以让您衡量未知样品的性能。如果您还想测量未知未来样本的性能(仪器漂移!),则需要“在将来”测量的测试集,即在测量所有训练样本之后的某个时间。在分析化学中,这是必需的,例如,如果您想了解需要多久重新进行一次仪器校准(对于每次测定,每天,每周,每月等)

Bootstrap与交叉验证术语

  • 替换后重新采样通常称为引导程序,
  • 重新采样而无需替换交叉验证。

两者都可以有某种分层。从历史上看,交叉验证(至少在化学计量学中)的拆分通常是以非随机的方式进行的,例如,用于校准/如果案例(物理样本)很少,并且要确保覆盖整个数据范围,则进行回归分析。

两种技术通常都会重复/重复多次。再次出于历史原因,至少在化学计量学方面,k倍交叉验证通常意味着训练和测试k个模型(每个模型都用训练中未涉及的数据的1 / k进行了测试)。如果重复进行这样的随机拆分,人们将其称为迭代或重复交叉验证。

ķķñññ

  • 请注意,引导程序不适用于某些首先删除重复测量值的模型拟合技术。
  • 引导程序存在一些变体,例如.632-bootstrap和.632 + -bootstrap

ķķ


长答案很不错。
Momo 2012年

(+1)很有远见。我很确定代理这个词会坚持下去。
斯特芬,2012年

@steffen,谢谢。我绝不是该术语的发明者。我想我是在U. Braga-Neto的一些论文中初次见面的(可能是这篇文章:ncbi.nlm.nih.gov/pubmed/14960464),但我立即对这个词深信不疑……
cbeleites支持Monica

关于关于模拟数据的问题的评论。引导程序本身不涉及模拟数据。模拟数据将用作评估引导程序方法是否可解决特定问题的方法。但是引导程序本身只是基于引导程序样本的数据重用。从原始数据集中随机选择并替换的样本。这通常涉及获取n个重采样,其中n是原始样本的大小。蒙特卡洛作为一种通过在计算机上实际生成引导程序样本来近似引导程序分布的方法。
Michael R. Chernick

3

我不了解“最佳”(这可能取决于您使用它的目的),但是我使用引导程序验证通过以下方式(如果愿意,可以采用第三种方式)估算新数据的错误:

  1. 从原始数据(大小为N)中抽取出N个观测值作为训练集。
  2. 使模型适合训练数据。
  3. 在袋外(oob)样本上评估模型

袋装物品的含义并不总是很清楚。通常,所有这些观察结果都不属于训练范围。(在这种情况下,我将以这种方式使用)更严格的做法是,仅在oob样本中拥有不包含训练集一部分的整个预测变量向量的实现的观察值(如果您有很多因素,这尤其有用)。更严格的是使用oob样本,该样本仅包含那些在模型中选择的预测变量上对预测变量具有不同实现的观察结果(如果通过某些变量选择程序(例如树)找到模型,则特别有用)。

然后,我通常将其重复k次,并将结果汇​​总到k倍(均值或中位数或任何方便的统计数据)。然后,可以将以这种方式选择的模型拟合到整个数据集(如您的选项2所示),以额外衡量是否仍然存在过度拟合的趋势(性能度量值应与引导样本相差不大)。

如果我有更多模型或参数网格或类似模型,则将它们全部拟合到每个训练集中,并在每个oob样本上对它们进行评估。也可能不使用训练集两次,而是使用每个模型或调整参数组合来绘制新的训练/对象对。

参见例如基准测试的设计和分析

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.