Questions tagged «cross-validation»

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

1
嵌套交叉验证后如何建立最终模型并调整概率阈值?
首先,为发布一个已经在这里,这里,这里,这里,这里详细讨论过的问题的道歉,并用于重新加热旧主题。我知道@DikranMarsupial已经在帖子和期刊论文中详细介绍了这个主题,但是我仍然感到困惑,从这里的类似帖子数量来看,这仍然是其他人难以理解的事情。我还应该指出,我在这个话题上的矛盾加剧了我的困惑。您还应该知道我本来是物理学家,而不是统计学家,所以我在这方面的专业知识有限。我正在写一篇期刊论文,其中我想使用嵌套的CV来评估最终模型所期望的性能。在我的领域,这是第一个。(我们几乎从不使用任何是我领域中强大的简历的一种形式,但要用神经网络和增强型决策树的研究成果来愉快地抽出论文!)因此,有一个非常透彻和清晰的理解非常重要,这样我就不会搞砸和传播对我的社区来说是一个错误的过程,可能需要多年才能学会!谢谢!关于这个问题... 嵌套交叉验证后如何构建最终模型? 我正在训练一个具有L1和L2正则化的简单glmnet模型。快速,简单和可解释。我执行特征中心,缩放和Box-Cox转换,以使特征分布均值中心,标准化并且有点像高斯型。我在交叉验证中执行此步骤,以防止信息泄漏。纯粹是因为我的硬件速度非常慢,而且我无法使用更多的CPU资源,所以在特征预处理之后,我还会在CV中执行基于过滤器的快速特征选择。我正在使用随机网格搜索来选择alpha和lambda超参数。我知道我不应该通过CV循环获得此估算值。我知道内部CV回路用于模型选择(在这种情况下,是最佳超参数),而外部回路则用于模型评估,即内部CV和外部CV具有两个不同的用途,这些用途常常被错误地混为一谈。(到目前为止,我还好吗?) 现在,我发布的链接建议“考虑交叉验证的方法是估计使用构建模型的方法获得的性能,而不是估计模型的性能”。鉴于此,我应该如何解释嵌套CV过程的结果? 我读过的建议似乎表明以下问题---如果这是错误的,请纠正我:内部CV是允许我选择glmnet模型的最佳alpha和lambda超参数的机制的一部分。如果我完全按照内部CV中所使用的过程(包括超参数调整)并使用整个数据集构建最终模型,则外部CV会告诉我可以从最终模型中获得的估计值。即,超参数调整是“用于构建模型的方法”的一部分。这是正确的吗?因为这使我感到困惑。在其他地方,我已经看到了构建要部署的最终模型的过程涉及使用固定值对整个数据集进行训练使用CV选择的超参数。在此,“用于建立模型的方法”不包括调整。那是什么呢?在某个时候,将选择最佳超参数并将其固定以构建最终模型!哪里?怎么样?如果我的内循环是CV的5倍,而我的外循环是CV的5倍,并且我在内部CV中选择了100个测试点作为随机网格搜索的一部分,那么我实际训练了几次glmnet模型?(100 * 5 * 5)+ 1作为最终版本,还是我不知道还有更多步骤? 基本上,我需要对如何从嵌套CV解释性能估计以及如何构建最终模型进行非常清晰的描述。 我还想知道选择概率阈值的适当程序,以将最终的glmnet模型的概率分数转换为(二进制)类标签---需要另一个CV循环吗?


1
重复k折交叉验证的报告差异
我一直在使用重复的k倍交叉验证,并一直报告(交叉评估的不同运行折叠倍数的平均值作为评估指标的平均值)。 但是,我不确定如何报告差异。我在这里发现了许多关于重复交叉验证的问题,但是,我所知没有一个问题明确回答了重复交叉验证测试中的方差问题。 我知道总方差是由于:1)模型的不稳定性和2)样本数量有限。 似乎有4种不同的方法可以计算出重复k倍交叉验证的方差: 1)交叉验证运行期间估计的平均性能指标(例如准确性)的方差是否是方差的有效估计? 2)通过汇总特定于运行的差异(在交叉验证测试的不同倍数中计算得出)来汇总差异。 3)将来自大型向量中交叉验证的不同折叠的分类结果串联起来。例如,如果每个折叠中的测试数据数量为10,而我的CV为10倍,则所产生的重复矢量将为100。现在,如果我将交叉验证测试重复10次,我将包含10个大小为100的向量,每个向量都包含10倍CV运行的分类结果。现在,我将像单次运行CV一样计算均值和方差。 4)我也读过(等式2和3合1),方差是外部方差和预期内部方差的总和。如果我理解正确,则外部方差是特定于重复的平均性能的方差,内部方差是交叉验证的不同倍数之间的方差。 非常感谢您的帮助和指导,以便为重复的交叉验证测试报告适当的差异。 谢谢,

1
插入符号-重复的K折叠交叉验证与嵌套的K折叠交叉验证,重复n次
该插入符包是构建多机器学习模型辉煌[R库,并有模型构建和评估多种功能。对于参数调整和模型训练,插入符号包提供“ repeatedcv”作为方法之一。 作为一种好的做法,可以使用嵌套的K折交叉验证执行参数调整,其工作方式如下: 将训练集划分为“ K”子集 在每次迭代中,将“ K减1”子集用于模型训练,并保留1个子集(保持集)用于模型测试。 进一步将“ K减1”训练集划分为“ K”个子集,并迭代使用新的“ K减1”子集和“验证集”进行参数调整(网格搜索)。此步骤中确定的最佳参数用于测试步骤2中设置的保持。 另一方面,我假设重复的K折交叉验证可能会重复选择步骤1和2,因为我们选择查找模型方差的次数很多。 但是,仔细阅读插入符号手册中的算法,看起来“ repeatedcv”方法除了重复进行交叉验证外,还可能执行嵌套的K折交叉验证。 我的问题是: 我对插入符号'repeatedcv'方法的低估是正确的吗? 如果没有,您能否举一个使用插入的K折叠交叉验证的示例,并使用带有插入符号的'repeatedcv'方法? 编辑: 在本方法论文章中将解释和比较不同的交叉验证策略。 Krstajic D,Buturovic LJ,Leahy DE和Thomas S:选择和评估回归和分类模型时的交叉验证陷阱。化学信息杂志2014 6(1):10。doi:10.1186 / 1758-2946-6-10 我对使用插入符号包的“算法2:重复分层嵌套的交叉验证”和“算法3:针对变量选择和参数调整的重复网格搜索交叉验证”感兴趣。

1
是否应该使用重复的交叉验证来评估预测模型?
我碰到了Gitte Vanwinckelen和Hendrik Blockeel 在2012年发表的这篇文章,对重复交叉验证的实用性提出了质疑,该方法已成为减少交叉验证方差的一种流行技术。 作者证明,尽管重复交叉验证确实减少了模型预测的方差,但是由于对同一样本数据集进行了重新采样,因此重新采样的交叉验证估计的均值收敛于真实预测准确性的偏差估计,因此没有用。 尽管有这些限制,是否应该使用重复的交叉验证?

3
k折叠交叉验证的网格搜索
我有一个10倍交叉验证设置的120个样本的数据集。目前,我选择第一个保持的训练数据,并对其进行5倍交叉验证,以通过网格搜索选择gamma和C的值。我正在将SVM与RBF内核一起使用。由于我正在做十个10交叉验证以报告精度,请问,我是否在每个保留的训练数据中执行此网格搜索(有10个保留,每个包含10%的测试和90%的训练数据)?那不是很费时间吗? 如果我使用第一个保留项的gamma和C并将其用于k折交叉验证的9个保留项的其余部分,那是违反规定,因为我本来会使用火车数据获取gamma和C并再次使用火车数据的一部分作为第二次验证中的测试?

7
术语“最佳匹配”和交叉验证中使用的“最佳”的定义是什么?
如果将非线性函数拟合到一组点(假设每个横坐标只有一个纵坐标),则结果可以是: 残差很小的非常复杂的函数 具有大量残差的非常简单的函数 交叉验证通常用于在这两个极端之间找到“最佳”折衷方案。但是“最佳”是什么意思?是“最有可能”吗?您甚至将如何证明最可能的解决方案是什么? 我内心的声音告诉我,简历正在寻找某种最低限度的能源解决方案。这让我想到了熵,我隐约知道它在统计和物理学中都会发生。 在我看来,“最佳”拟合是通过最小化复杂度和误差函数的总和而产生的,即 minimising m where m = c(Complexity) + e(Error) 这有意义吗?函数c和e是什么? 请您能用非数学语言来解释,因为我对数学不太了解。

2
R中插入符号包中的PCA和k倍交叉验证
我刚刚重新观看了Coursera上机器学习课程的演讲。在教授讨论PCA以便在有监督的学习应用程序中对数据进行预处理的部分中,他说PCA仅应在训练数据上执行,然后使用映射来转换交叉验证和测试集。另请参阅PCA和火车/测试区。 但是,在caretR包中,传递给train()函数的训练数据已经由PCA处理。因此,当算法执行k倍交叉验证时,交叉验证集已经通过PCA preProcess()和进行了处理,predict()并且实际上已用于PCA“拟合”中。 我对情况的理解正确吗?是否表示插入符号与PCA(或实际上使用任何缩放/定中心方法)进行交叉验证的过程是“错误的”,因为数据的预处理是在交叉验证集和训练集上进行的?如果是这样,这将对结果产生多大的影响?

4
交叉验证之前的归一化
在执行重复的k倍交叉验证之前,对数据进行归一化处理(均值为零,统一标准差为零)是否会产生诸如过度拟合之类的负面后果? 注意:这是针对#cases> total #features的情况 我正在使用对数转换来转换部分数据,然后如上所述对所有数据进行规范化。然后执行功能选择。接下来,我将选定的特征和标准化数据应用于重复的10倍交叉验证,以尝试估计广义分类器的性能,并担心使用所有数据进行标准化可能不合适。我是否应该使用从该折叠训练数据中获得的归一化数据对每个折叠的测试数据进行归一化? 任何意见表示感谢!很抱歉,这个问题似乎很明显。 编辑: 在对此进行测试(符合以下建议)时,我发现CV之前的规范化与CV中的规范化相比在性能方面没有太大差异。

3
如何在非负矩阵分解中选择最佳潜在因子数量?
给定的矩阵Vm×nVm×n\mathbf V^{m \times n},非负矩阵分解(NMF)发现两个非负矩阵Wm×kWm×k\mathbf W^{m \times k}和Hk×nHk×n\mathbf H^{k \times n}(即与所有元素≥0≥0\ge 0)来表示分解矩阵为: V≈WH,V≈WH,\mathbf V \approx \mathbf W\mathbf H, 例如要求非负的WW\mathbf W和HH\mathbf H∥V−WH∥2.‖V−WH‖2.\|\mathbf V-\mathbf W\mathbf H\|^2. 是否有通用的方法来估算kkk NMF中?例如,如何将交叉验证用于此目的?

1
lmer模型使用哪种多重比较方法:lsmeans或glht?
我正在使用具有一个固定效果(条件)和两个随机效果(由于主题设计和配对而导致的参与者)的混合效果模型分析数据集。该模型是使用lme4包生成的exp.model<-lmer(outcome~condition+(1|participant)+(1|pair),data=exp)。 接下来,我针对没有固定效果(条件)的模型对该模型进行了似然比检验,结果有显着差异。我的数据集中有3个条件,因此我想进行多重比较,但不确定使用哪种方法。我在CrossValidated和其他论坛上发现了许多类似的问题,但我仍然很困惑。 据我所见,人们建议使用 1.该lsmeans包- lsmeans(exp.model,pairwise~condition)这给了我下面的输出: condition lsmean SE df lower.CL upper.CL Condition1 0.6538060 0.03272705 47.98 0.5880030 0.7196089 Condition2 0.7027413 0.03272705 47.98 0.6369384 0.7685443 Condition3 0.7580522 0.03272705 47.98 0.6922493 0.8238552 Confidence level used: 0.95 $contrasts contrast estimate SE df t.ratio p.value Condition1 - Condition2 -0.04893538 0.03813262 62.07 -1.283 0.4099 Condition1 - …

2
Out of Bag Error使得在随机森林中不需要CV吗?
我对随机森林很陌生。过去,我一直将拟合与测试的准确性与拟合与训练的准确性进行比较,以检测是否存在过度拟合。但是我在这里读到: “在随机森林中,不需要交叉验证或单独的测试集即可获得测试集误差的无偏估计。它是在运行期间内部估计的……” 上面的一小段可以在“ 袋外(oob)误差估计”部分找到。这个“袋外错误”概念对我来说是一个全新的概念,令人困惑的是我模型中的OOB错误是35%(或65%的准确度),但是,如果我对我的数据应用交叉验证(只是一个简单的保留)方法),然后将拟合与测试与拟合与训练进行比较,我分别获得65%的准确性和96%的准确性。根据我的经验,这被认为是过拟合,但OOB会保持35%的误差,就像我的拟合与测试误差一样。我过拟合吗?我是否应该甚至使用交叉验证来检查随机森林中的过度拟合? 简而言之,当我的拟合vs训练表明我过度拟合时,我不确定是否应该信任OOB来获得测试集错误的无偏错误!

1
在原假设下,可交换样本背后的直觉是什么?
排列检验(也称为随机检验,重新随机检验或精确检验)非常有用,并且在t-test未满足例如要求的正态分布的假设以及通过按等级对值进行转换时派上用场非参数测试之类的测试Mann-Whitney-U-test会导致丢失更多信息。但是,在使用这种检验时,一个假设且唯一一个假设应该是原假设下样本的可交换性假设。还值得注意的是,当有两个以上的示例(如在coinR包中实现的示例)时,也可以应用这种方法。 您能用简单的英语用一些比喻语言或概念直觉来说明这一假设吗?这对于在像我这样的非统计学家中阐明这个被忽视的问题非常有用。 注意: 提及在相同假设下应用置换测试不成立或无效的情况将非常有帮助。 更新: 假设我随机从我所在地区的当地诊所收集了50个受试者。他们被随机分配为接受药物或安慰剂的比例为1:1。分别Par1在V1(基准),V2(3个月后)和V3(1年后)时测量了参数1 。根据特征A,所有50个主题都可以分为2组;正值= 20,负值=30。它们也可以基于特征B细分为另外2组;B阳性= 15,B阴性=35。 现在,我具有Par1所有访问中所有受试者的值。在可交换性的假设下,如果可以,我是否可以在Par1使用置换测试的水平之间进行比较: -将接受药物治疗的受试者与接受V2安慰剂治疗的受试者进行比较? -将具有特征A的对象与具有V2的特征B的对象进行比较? -比较在V2具有特征A的对象与在V3具有特征A的对象? -在哪种情况下,这种比较是无效的,并且违反了可交换性的假设?
15 hypothesis-testing  permutation-test  exchangeability  r  statistical-significance  loess  data-visualization  normal-distribution  pdf  ggplot2  kernel-smoothing  probability  self-study  expected-value  normal-distribution  prior  correlation  time-series  regression  heteroscedasticity  estimation  estimators  fisher-information  data-visualization  repeated-measures  binary-data  panel-data  mathematical-statistics  coefficient-of-variation  normal-distribution  order-statistics  regression  machine-learning  one-class  probability  estimators  forecasting  prediction  validation  finance  measurement-error  variance  mean  spatial  monte-carlo  data-visualization  boxplot  sampling  uniform  chi-squared  goodness-of-fit  probability  mixture  theory  gaussian-mixture  regression  statistical-significance  p-value  bootstrap  regression  multicollinearity  correlation  r  poisson-distribution  survival  regression  categorical-data  ordinal-data  ordered-logit  regression  interaction  time-series  machine-learning  forecasting  cross-validation  binomial  multiple-comparisons  simulation  false-discovery-rate  r  clustering  frequency  wilcoxon-mann-whitney  wilcoxon-signed-rank  r  svm  t-test  missing-data  excel  r  numerical-integration  r  random-variable  lme4-nlme  mixed-model  weighted-regression  power-law  errors-in-variables  machine-learning  classification  entropy  information-theory  mutual-information 

2
交叉验证中的均值(分数)vs分数(串联)
TLDR: 我的数据集很小(120个)样本。在进行10倍交叉验证时,我应该: 收集每个测试折叠的输出,将它们连接成一个向量,然后在这个完整的预测向量(120个样本)上计算误差? 或者我应该代替计算上的输出我得到的错误的一个折(每个折痕12个样本),然后让我最终误差估计为平均10点的误差估计? 是否有任何科学论文争论这些技术之间的差异? 背景:多标签分类中与宏观/微观得分的潜在关系: 我认为这个问题可能与micro和Macro之间的差异有关经常在多标签分类任务(例如说5个标签)中使用的平均值平均值。 在多标签设置时,微平均得分是通过使计算的聚集对120个样本的所有5个分类器预测真阳性,假阳性,真阴性,假阴性权变表,。然后,该列联表用于计算微观精度,微观召回率和微观f测度。因此,当我们有120个样本和5个分类器时,将根据600个预测(120个样本* 5个标签)计算出微观指标。 使用Macro变体时,每个标签独立计算度量(精度,召回率等),最后将这些度量平均。 微观估算与宏观估算之间的差异背后的思想可能会扩展到二进制分类问题中以K倍设置可以完成的工作。对于10倍,我们可以对10个值进行平均(宏观测量),也可以将10个实验连接起来并计算微观措施。 背景-扩展示例: 以下示例说明了该问题。假设我们有12个测试样本,并且有10折: 折1:TP = 4,FP = 0,TN = 8 精度 = 1.0 折2:TP = 4,FP = 0,TN = 8 精度 = 1.0 折3:TP = 4,FP = 0,TN = 8 精度 = 1.0 折4:TP = 0,FP = 12, 精度 = …

1
何时/何处使用功能数据分析?
我是很新的功能性数据分析(FDA)。我在读: Ramsay,James O.和Silverman,Bernard W.(2006年),Functional Data Analysis,第二版,纽约,Springer。 但是,我仍然不清楚在哪里/何时使用FDA?有人可以给我一个例子,特别是在医学研究方面吗?我真的不知道在哪里/什么时候在实践中应用FDA。 对于增长曲线数据,我们可以使用非线性混合模型,对于纵向数据,我们可以使用重复测量方差分析,对于多元数据/高维数据,我们可以使用PCA,FA等。因此,何时/何地是最佳时机/使用FDA的情况?

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.