Questions tagged «cross-validation»

在模型拟合期间反复保留数据的子集,以便量化保留的数据子集上的模型性能。

10
保持验证与交叉验证
在我看来,坚持验证是没有用的。也就是说,将原始数据集分为两部分(训练和测试)并将测试得分用作泛化度量,这是没有用的。 K折交叉验证似乎可以更好地概括(因为它在每个点上进行训练和测试)。那么,为什么我们要使用标准的保留验证?甚至谈论它?

5
关于iid假设在统计学习中的重要性
在统计学习中,隐式或显式地,总是假设训练集由输入/响应元组是从同一个联合分布中独立得出的,D ={ X, y }D={X,y}\mathcal{D} = \{ \bf {X}, \bf{y} \}ñNN(X一世,ÿ一世)(Xi,yi)({\bf{X}}_i,y_i) P( X,ÿ)P(X,y)\mathbb{P}({\bf{X}},y) p (X,ÿ)= p (y| X)p (X)p(X,y)=p(y|X)p(X) p({\bf{X}},y) = p( y \vert {\bf{X}}) p({\bf{X}}) 和通过特定的学习算法试图捕获的关系。从数学上讲,该iid假设写道:p (ÿ| X)p(y|X)p( y \vert {\bf{X}}) (X一世,ÿ一世)〜P(X,ÿ),∀ 我= 1 ,。。。,N(X一世,ÿ一世) 独立于 (XĴ,ÿĴ),∀ 我≠ Ĵ ∈ { 1 ,。。。,N}(Xi,yi)∼P(X,y),∀i=1,...,N(Xi,yi) independent of (Xj,yj),∀i≠j∈{1,...,N}\begin{gather} ({\bf{X}}_i,y_i) \sim \mathbb{P}({\bf{X}},y), …

3
了解分层的交叉验证
分层交叉验证和交叉验证有什么区别? 维基百科说: 在分层k折交叉验证中,选择折数以使平均响应值在所有折数中均大致相等。在二分类的情况下,这意味着每个折页包含两种类标签的大致相同的比例。 但是我还是很困惑。 mean response value在这种情况下是什么意思? 为什么#1重要? 一个人如何在实践中获得第一?

6
在高维度(
考虑一个具有预测变量和样本大小旧回归问题。通常的看法是,OLS估计量将过拟合,并且通常会比岭回归估计量好:通常使用交叉验证来找到最佳正则化参数。在这里,我使用10倍CV。澄清更新:当,通过“ OLS估计器”,我理解给出的“最小范数OLS估计器”pppβ = (X ⊤ X + λ 我)- 1 X ⊤ ÿ 。λ Ñ &lt; p β OLS = (X ⊤ X )+ X ⊤ Ŷ = X + ý 。nnnβ^=(X⊤X+λI)−1X⊤y.β^=(X⊤X+λI)−1X⊤y.\hat\beta = (X^\top X + \lambda I)^{-1}X^\top y.λλ\lambdan&lt;pn&lt;pn1000yyyp=50&lt;np=50&lt;np=50npppp=1000p=1000p=1000λ→0λ→0\lambda\to 0与最佳岭回归效果一样好。λλ\lambda 这怎么可能?它对我的数据集有何影响?我是否遗漏了一些明显的东西,或者确实违反直觉?假设和都大于,则在质上有什么区别?p = 1000 np=100p=100p=100p=1000p=1000p=1000nnn 在什么条件下最小范数OLS解决方案不会过拟合?n&lt;pn&lt;pn<p 更新:注释中有些令人难以置信,因此这是使用的可复制示例glmnet。我使用Python,但是R用户可以轻松修改代码。 %matplotlib notebook import numpy …

1
如果预测是目标,如何将标准化/标准化应用于训练和测试集?
是否同时转换所有数据或折叠(如果应用了简历)?例如 (allData - mean(allData)) / sd(allData) 我是否要分别转换训练集和测试集?例如 (trainData - mean(trainData)) / sd(trainData) (testData - mean(testData)) / sd(testData) 还是要转换训练集并在测试集中使用计算?例如 (trainData - mean(trainData)) / sd(trainData) (testData - mean(trainData)) / sd(trainData) 我相信3是正确的方法。如果3是正确的,我必须担心平均值不为0或范围不在[0; 1]或[-1; 1](规范化)的测试集?

2
折交叉验证中的最佳折叠数:留一法CV始终是最佳选择吗?
除了计算能力方面的考虑之外,是否有任何理由相信交叉验证中折叠数的增加会导致更好的模型选择/验证(即,折叠数越多越好)? 极端地讲,与折交叉验证相比,留一法交叉验证是否必然导致更好的模型?KKK 这个问题的一些背景:我正在处理一个很少有实例的问题(例如10个正值和10个负值),并且担心我的模型可能无法很好地归纳出很好的数据/如果数据太少,可能会过度拟合。

4
交叉验证技术纲要
我想知道是否有人对交叉验证技术有所了解,并讨论了它们之间的区别以及何时使用它们的指南。维基百科列出了最常用的技术,但我很好奇是否还有其他技术,以及是否有任何针对它们的分类法。 例如,我刚遇到一个允许我选择以下策略之一的库: 坚持 引导程序 K交叉验证 遗漏一个 分层交叉验证 平衡分层交叉验证 分层支持 分层引导 而且我正在尝试了解分层,平衡在引导,支持或CV中的含义。 如果人们愿意,我们还可以将此帖子转变为社区Wiki,并在此处收集有关技术或分类法的讨论。

3
使用交叉验证时针对一种标准错误规则的经验论证
是否有任何经验研究证明使用一个标准误差规则来支持简约?显然,这取决于数据的数据生成过程,但是任何分析大量数据集的内容都会非常有趣。 通过交叉验证(或更普遍地通过任何基于随机化的过程)选择模型时,将应用“一个标准错误规则”。 假设我们考虑由复杂性参数索引的模型,使得恰好在时比 “复杂” 。进一步假设我们通过某种随机化过程(例如,交叉验证)评估模型的质量。让表示的“平均”质量,例如,在许多交叉验证运行,平均出球袋预测误差。我们希望最小化此数量。 τ &Element; [R 中号τ 中号τ ' τ &gt; τ '中号q (中号)中号MτMτM_\tauτ∈Rτ∈R\tau\in\mathbb{R}MτMτM_\tauMτ′Mτ′M_{\tau'}τ&gt;τ′τ&gt;τ′\tau>\tau'MMMq(M)q(M)q(M)MMM 但是,由于我们的质量度量来自某种随机化程序,因此具有可变性。令表示随机试验中的质量标准误差,例如,交叉验证试验中的袋外预测误差的标准偏差。M Ms(M)s(M)s(M)MMMMMM 然后我们选择模型,其中是最小的使得 τ τMτMτM_\tauττ\tauττ\tau q(Mτ)≤q(Mτ′)+s(Mτ′),q(Mτ)≤q(Mτ′)+s(Mτ′),q(M_\tau)\leq q(M_{\tau'})+s(M_{\tau'}), 其中索引(平均)最佳模型。τ′τ′\tau'q(Mτ′)=minτq(Mτ)q(Mτ′)=minτq(Mτ)q(M_{\tau'})=\min_\tau q(M_\tau) 也就是说,我们选择最简单的模型(最小的 ττ\tau),在随机化过程中,该模型的误差不超过最佳模型Mτ′Mτ′M_{\tau'}。 我已经在以下地方找到了这种“一个标准错误规则”,但是从来没有任何明确的理由: Breiman,Friedman,Stone&Olshen(1984)的分类树和回归树中的第80页 Tibshirani,Walther和Hastie的《通过间隙统计估计数据集中的簇数》中的第415页(JRSS B,2001年)(参考Breiman等人)。 Hastie,Tibshirani和Friedman在2009年的《统计学习要素》中的第61和244页 Hastie,Tibshirani和Wainwright(2015)在《稀疏的统计学习》中的第13页

3
折交叉验证估计的方差为
TL,DR:看来,与经常重复的建议相反,采用留一法交叉验证(LOO-CV),即KKK倍CV,其中KKK(折数)等于NNN(数训练观察值)-得出泛化误差的估计值,该估计值对于任何 K都是最小变量,而不是最大变量,假设模型/算法,数据集或两者都有一定的稳定性条件(我不确定哪个是正确的,因为我不太了解这种稳定性条件。KKK 有人可以清楚地说明这个稳定条件到底是什么吗? 线性回归就是这样一种“稳定”算法,这是否真的意味着在这种情况下,就泛化误差估计的偏差和方差而言,LOO-CV严格来说是CV的最佳选择? 传统观点认为,在K倍CV中选择KKK时要遵循偏差方差的折衷,这样较低的K值(逼近2)会导致对泛化误差的估计,这些偏差具有更悲观的偏差,但方差较小,而值较高(接近N)的K导致估计的偏差较小,但方差更大。关于这种随着K增大而增加的方差现象的常规解释可能在《统计学习的要素》(第7.10.1节)中最突出地给出:KKKKKKKKKNNNKKK 在K = N的情况下,交叉验证估计器对于真实的(预期)预测误差几乎是无偏的,但是由于N个“训练集”彼此非常相似,因此交叉验证估计器可能具有较高的方差。 这意味着NNN验证错误之间的相关性更高,因此它们的总和更具可变性。在本网站(例如,这里,这里,这里,这里,这里,这里和这里)以及各种博客等上的许多答案中都重复了这种推理方法。但是实际上,从来没有给出详细的分析,而是只是分析的直觉或简要草图。 但是,人们可以找到矛盾的陈述,通常是出于某种我不太了解的“稳定”条件。例如,这个矛盾的答案引用了2015年一篇论文的几段内容,其中包括:“对于不稳定性低的模型/建模程序,LOO通常具有最小的可变性”(强调后加)。本文(第5.2节)似乎同意,只要模型/算法“稳定” ,LOO就代表的最小变量选择。对此问题甚至采取另一种立场(推论2),该论文说:“ k倍交叉验证的方差不取决于kKKKkkkkkk”,再次引用了某种“稳定性”条件。 关于为什么LOO可能是变化最大的折CV的解释很直观,但是有一个直觉。均方误差(MSE)的最终CV估算值是每一倍MSE估算值的平均值。因此,当K增加到N时,CV估计值是随机变量数量增加的平均值。而且我们知道,均值的方差会随着变量数量的平均化而减小。因此,为了使LOO成为变化最大的K倍CV,必须确实如此,由于MSE估计之间的相关性增加而导致的方差增加要大于因平均获得的折叠次数更多而导致的方差减少。KKKKKKNNNKKK。事实并非如此,这一点也不明显。 考虑到所有这些问题后,我变得非常困惑,我决定对线性回归案例进行一些模拟。我用 = 50和3个不相关的预测变量模拟了10,000个数据集,每次使用K = 2、5、10 或50 = N的K倍CV 估计泛化误差。R代码在这里。以下是所有10,000个数据集(以MSE单位)的CV估计值的均值和方差:NNNKKKKKKNNN k = 2 k = 5 k = 10 k = n = 50 mean 1.187 1.108 1.094 1.087 variance 0.094 0.058 0.053 0.051 这些结果显示了预期的模式,即较高的值导致较小的悲观偏见,但似乎也证实了在LOO情况下CV估计的方差最低,而不是最高。KKK 因此,线性回归似乎是上述论文中提到的“稳定”情况之一,其中增加与CV估计中的减少而不是增加的方差有关。但是我仍然不明白的是:KKK “稳定”条件到底是什么?它在某种程度上适用于模型/算法,数据集,或两者都适用? 有没有一种直观的方式来考虑这种稳定性? …

7
交叉验证可以用于因果推理吗?
在所有情况下,我都熟悉交叉验证,它仅用于提高预测准确性的目的。可以在估计变量之间的无偏关系时扩展交叉验证的逻辑吗? 尽管理查德·伯克(Richard Berk)的这篇论文演示了在“最终”回归模型中使用保留样本进行参数选择的情况(并演示了为什么逐步选择参数不是一个好主意),但我仍然看不到如何完全确保与基于逻辑和对象的先验知识选择模型相比,X对Y产生的影响的无偏估计不再是。 我要求人们举出一些例子,其中有人使用保留样本来帮助进行因果推论,或者使用一些一般性的文章来帮助我理解。我也毫不怀疑我的交叉验证概念是幼稚的,因此可以这么说。使用暂留样本似乎可以进行因果推断,但是我不知道有任何工作可以做到这一点,或者他们将如何做到这一点。 伯克论文的引文: 模型选择后的统计推断 ,作者:理查德·伯克(Richard Berk),劳伦斯·布朗(Lawrence Brown),琳达·赵(Linda Zhao)。26,No. 2(2010年6月1日),第217-236页。 此处为 PDF版本 这对由CHL小样本研究探索性数据分析问题促使这个问题。

5
交叉验证时间序列分析
我一直在使用R中的插入符号包来建立用于分类和回归的预测模型。Caret提供了一个统一的界面,可以通过交叉验证或引导绑定来调整模型超参数。例如,如果您要建立一个简单的“最近邻居”模型进行分类,则应使用多少个邻居?2?10个?100?Caret通过重新采样数据,尝试不同的参数,然后对结果进行汇总以确定哪个可产生最佳的预测准确性,来帮助您回答这个问题。 我喜欢这种方法,因为它为选择模型超参数提供了一种可靠的方法,并且一旦您选择了最终的超参数,就可以使用分类模型的准确性对模型的“好”程度进行交叉验证。和RMSE用于回归模型。 我现在有一些时间序列数据,可能要使用随机森林来构建回归模型。考虑到数据的性质,有什么好的方法可以评估模型的预测准确性?如果随机森林不能真正应用于时间序列数据,那么为时间序列分析构建准确的集成模型的最佳方法是什么?

1
何时才真正需要嵌套交叉验证,并且可以在实践上有所作为?
使用交叉验证进行模型选择(例如,超参数调整)并评估最佳模型的性能时,应使用嵌套交叉验证。外环用于评估模型的性能,内环用于选择最佳模型。在每个外部训练集上选择模型(使用内部CV回路),并在相应的外部测试集上评估其性能。 这已经在很多线程中进行了讨论和解释(例如,在这里进行交叉验证后使用完整数据集进行培训吗?,请参阅@DikranMarsupial的答案),并且对我来说是完全清楚的。仅对模型选择和性能评估进行简单的(非嵌套)交叉验证会产生正偏差的性能评估。@DikranMarsupial在有关此主题的2010年论文中(关于模型选择中的过拟合和性能评估中的后续选择偏差),第4.3节称为“模型中的过拟合是否真的是真正的关注点”?-文件显示答案是肯定的。 综上所述,我现在正在使用多元多元岭回归,并且我看不到简单CV和嵌套CV之间的任何区别,因此在这种特殊情况下嵌套CV看起来像是不必要的计算负担。我的问题是:在什么条件下简单的简历会产生明显的偏差,而嵌套的简历可以避免这种情况?嵌套CV在实践中什么时候重要,什么时候没什么关系?有没有经验法则? 这是使用我的实际数据集的说明。水平轴是对脊回归的对。垂直轴是交叉验证错误。蓝线对应于简单的(非嵌套)交叉验证,具有50个随机的90:10训练/测试分割。红线对应于具有50个随机90:10训练/测试分割的嵌套交叉验证,其中使用内部交叉验证循环(也是50个随机90:10分割)选择λ。线是超过50个随机分割的平均值,阴影显示± 1标准偏差。log(λ)log⁡(λ)\log(\lambda)λλ\lambda±1±1\pm1 λλ\lambdaλλ\lambda 更新资料 实际上是这样:-)只是差别很小。这是放大图: λ=0.002λ=0.002\lambda=0.002505050 λ=0.002λ=0.002\lambda=0.002 (我将整个过程运行了几次,并且每次都会发生。) 我的问题是,在什么情况下我们可以期望这种偏见是微不足道的?在什么情况下我们不应该这样?

2
我怎么知道哪种交叉验证最好?
我试图找出哪种交叉验证方法最适合我的情况。 以下数据只是解决问题的一个示例(R中),但我的真实X数据(xmat)相互关联,并且与y变量(ymat)的关联程度不同。我提供了R代码,但我的问题不是关于R而是关于方法。Xmat包含X个变量V1至V100,而ymat包含单个y变量。 set.seed(1233) xmat &lt;- matrix(sample(-1:1, 20000, replace = TRUE), ncol = 100) colnames(xmat) &lt;- paste("V", 1:100, sep ="") rownames(xmat) &lt;- paste("S", 1:200, sep ="") # the real y data are correlated with xmat ymat &lt;- matrix(rnorm(200, 70,20), ncol = 1) rownames(ymat) &lt;- paste("S", 1:200, sep="") 我想y根据中的所有变量建立一个预测模型xmat。因此它将是一个线性回归模型y ~ V1 + …

3
PCA和火车/测试区
我有一个数据集,其中有多组二进制标签。对于每组标签,我训练一个分类器,并通过交叉验证对其进行评估。我想使用主成分分析(PCA)降低尺寸。我的问题是: 是否可以对整个数据集执行一次 PCA ,然后如上所述使用较低维度的新数据集进行交叉验证?还是我需要为每个训练集做一个单独的PCA(这意味着为每个分类器和每个交叉验证对折做一个单独的PCA)? 一方面,PCA不使用任何标签。另一方面,它确实使用测试数据进行转换,因此恐怕它可能会偏向结果。 我应该提到,除了为我节省一些工作之外,对整个数据集执行一次PCA可使我立即可视化所有标签集的数据集。如果每个标签集都有不同的PCA,则需要分别可视化每个标签集。

2
模型选择和交叉验证:正确的方法
CrossValidated中有许多关于模型选择和交叉验证的主题。这里有一些: 内部与外部交叉验证和模型选择 @DikranMarsupial 对特征选择和交叉验证的最佳答案 但是,这些线程的答案是相当通用的,并且大多突出了交叉验证和模型选择的特定方法的问题。 为了使事情尽可能具体,例如,假设我们正在使用带有RBF内核的SVM: ,并且我有一个特征X和标签y的数据集,我想ķ(x ,x′)= (γ| x − x′| )2K(x,x′)=(γ|x−x′|)2K(x, x' ) = (\gamma \, \vert x - x'\vert)^2 找到我的模型的最佳值(和çγγ\gammaCCC) 用我的数据集训练SVM(用于最终部署) 估计泛化误差和该误差周围的不确定性(方差) 为此,我将亲自进行网格搜索,例如,尝试和每种可能组合 。为简单起见,我们可以假设以下范围:γCCCγγ\gamma C∈ { 10 ,100 ,1000 }C∈{10,100,1000}C \in \{10, 100, 1000\} γ∈ { 0.1 ,0.2 ,0.5 ,1.0 }γ∈{0.1,0.2,0.5,1.0}\gamma \in \{0.1, 0.2, 0.5, 1.0\} 更具体地说,使用我的完整数据集,我可以执行以下操作: …

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.