DL--交叉验证

孤街浪徒 提交于 2020-01-24 01:48:00

Wikipedia:https://en.wikipedia.org/wiki/Cross-validation_(statistics)

交叉验证(有时称为旋转估计[1] [2] [3]样本外测试)是各种类似的模型验证技术中的任何一种,用于评估统计分析的结果将如何推广到一个独立的数据集。它主要用于设置,其目的是预测,和一个想要估计如何准确地一个预测模型在实践中执行。在预测问题中,通常会给模型一个已知数据的数据集训练数据集)和一个未知数据的数据集(或首先测试的数据),然后针对该数据测试模型(称为验证数据集测试集)。[4] [5]交叉验证的目的是测试模型预测未用于估计其数据的新数据的能力,以发现诸如过度拟合选择偏差之类的问题[6],并对如何进行建模提供深刻见解。该模型将推广到一个独立的数据集(例如,未知数据集,例如来自实际问题的数据集)。

一轮交叉验证涉及分割一个样品数据互补的子集,在一个子集执行所述分析(称为训练集),以及验证在另一子集中的分析(称为验证集合测试集)。为了减少可变性,在大多数方法中,使用不同的分区执行多轮交叉验证,并将验证结果组合(例如取平均值)在各轮中,以估计模型的预测性能。

总之,交叉验证结合(平均)预测中的适应度度量以得出模型预测性能的更准确估计。[7]

类型[编辑]

交叉验证可以分为两种类型:穷举交叉验证和非穷举交叉验证。

非穷举交叉验证

k-fold cross-validation

在k重交叉验证中,原始样本被随机分为k个大小相等的子样本。在k个子样本中,保留一个子样本作为测试模型的验证数据,其余k-1子样本用作训练数据。然后,交叉验证过程重复k次,其中每个k个子样本仅使用一次作为验证数据。然后,对k个结果进行平均以产生单个估计。与重复随机子抽样(见下文)相比,该方法的优点在于,所有观测值都用于训练和验证,而每个观测值仅用于一次验证。通常使用10倍交叉验证,[11],但通常k仍然是一个不固定的参数。

例如,设置k=2将导致两次交叉验证。在2倍交叉验证中,我们将数据集随机洗牌为两个集d0和d1,以便两个集大小相等(这通常是通过洗牌数据数组然后将其分成两个来实现的)。然后我们在d0上进行培训并在d1上进行验证,然后在d1上进行培训并在d0上进行验证。

当k=n(观察次数)时,k倍交叉验证等同于遗漏一个交叉验证。[12]

在分层k-折叠交叉验证中,选择分区,使得平均响应值在所有分区中大致相等。在二进制分类的情况下,这意味着每个分区包含两种类型的类标签的比例大致相同。

在重复的交叉验证中,数据被随机分成k个分区若干次。因此,模型的性能可以在几次运行中平均化,但这在实践中很少是可取的

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!