Questions tagged «cross-validation»

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

3
像SVM这样的离散分类器的ROC曲线:为什么我们仍称其为“曲线”?它不只是一个“点”吗?
在讨论中:如何为二进制分类生成roc曲线,我认为混淆是,“二进制分类器”(可以将2个类分开的任何分类器)对于Yang来说是所谓的“离散分类器”(产生离散输出0/1,例如SVM),而不是连续输出,例如ANN或贝叶斯分类器...等。因此,讨论的是如何为“二进制连续分类器”绘制ROC,答案是对输出进行排序因为输出是连续的,所以使用它们的分数,并使用阈值在ROC曲线上产生每个点。 我的问题是针对“二进制离散分类器”,例如SVM,输出值为0或1。因此,ROC仅生成一个点,而不生成曲线。我对为什么我们仍然称其为曲线感到困惑?!我们还能谈阈值吗?特别是如何在SVM中使用阈值?如何计算AUC?交叉验证在这里起什么作用?

1
留一法交叉验证如何工作?如何从不同的模型中选择最终模型?
我有一些数据,我想根据这些数据建立模型(例如线性回归模型)。下一步,我想在模型上应用“留一法”交叉验证(LOOCV),以便了解其性能。 如果我对LOOCV的理解正确,那么我将使用除该样本(训练集)之外的每个样本为每个样本(测试集)建立一个新模型。然后,我使用该模型预测测试集并计算误差。(预测- 实际)(预料到的-实际)(\text{predicted} - \text{actual}) 在下一步中,我汇总使用所选函数生成的所有误差,例如均方误差。我可以使用这些值来判断模型的质量(或拟合优度)。 问题:这些质量值适用的模型是哪个模型,因此,如果我发现从LOOCV生成的度量适合我的情况,我应该选择哪个模型?LOOCV研究了种不同的模型(其中是样本量);我应该选择哪种型号?ññnññn 是使用所有样本的模型吗?在LOOCV流程中从未计算过该模型! 是误差最小的模型吗?


3
交叉验证或自举以评估分类性能?
在特定数据集上评估分类器的性能并将其与其他分类器进行比较的最合适的抽样方法是什么?交叉验证似乎是标准做法,但是我已经读过诸如.632 bootstrap之类的方法是更好的选择。 作为后续措施:性能指标的选择是否会影响答案(如果我使用AUC而不是准确性)? 我的最终目标是能够自信地说一种机器学习方法优于特定的数据集。

1
谁发明了k折交叉验证?
我正在寻找对引入k折交叉验证的论文的参考(而不仅仅是该主题的良好学术参考)。也许时间模糊不清,无法明确地确定第一篇论文,因此使用该想法的任何早期论文都将引起关注。 我最早知道的是 PA Lachenbruch和MR Mickey,“判别分析中的错误率估计”,Technometrics,第1卷。10号 1968年2月,第1卷,第1-12页。 和 A. Luntz和V. Brailovsky,“关于在识别的统计程序中获得的字符的估计(俄语),” Techicheskaya Kibernetica,第1卷。1969年3月3日。 但据我所知,它们仅涵盖留一法交叉验证(我的技术俄语不是全部; o)。

1
交叉验证(CV)和广义交叉验证(GCV)统计数据
我发现交叉验证(CV)统计信息和与线性模型Y=Xβ+εY=Xβ+εY = X\boldsymbol\beta + \boldsymbol\varepsilon(具有正态,均等误差向量εε\boldsymbol\varepsilon)。 一方面,Golub,Heath和Wahba将GCV估计λ^λ^\hat{\lambda}为(p。216) V(λ)V(λ)V\left(\lambda\right)给出的 V \ left(\ lambda \ right)的极小值= \ frac {\ frac {1} {n} \ left \ | \ left(I-A \ left(\ lambda \ right)\ right)y \ right \ | ^ 2} {\ left(\ frac {1} {n} \ mathrm {tr} \ left(I-A \ left(\ lambda …

3
哪些常见的预测模型可以视为ARIMA模型的特例?
今天早上,我醒来想知道(这可能是由于昨晚我睡不着觉):由于交叉验证似乎是正确的时间序列预测的基础,因此我应该“通常使用哪些模型交叉验证反对? 我提出了一些(简单的)方法,但是我很快意识到,它们只是ARIMA模型的特例。所以我现在想知道,这是一个实际的问题,Box-Jenknins方法已经采用了哪些预测模型? 让我这样说吧: 均值= ARIMA(0,0,0),常数 天真= ARIMA(0,1,0) 漂移= ARIMA(0,1,0)不变 简单指数平滑= ARIMA(0,1,1) Holt的指数平滑= ARIMA(0,2,2) 阻尼霍尔特= ARIMA(0,1,2) 加性Holt-Winters:SARIMA(0,1,m + 1)(0,1,0)m 还有什么可以添加到上一个列表中?有没有办法做移动平均或最小二乘回归的“ ARIMA方法”?另外,其他简单模型(例如ARIMA(0,0,1),ARIMA(1,0,0),ARIMA(1,1,1),ARIMA(1,0,1)等)如何转换? 请注意,至少对于初学者而言,我对ARIMA模型无法执行的操作不感兴趣。现在,我只想专注于他们可以做什么。 我知道了解ARIMA模型中的每个“构造块”应该回答上述所有问题,但是由于某些原因,我很难弄清这一点。因此,我致力于尝试一种“逆向工程”方法。

3
时间序列中的AIC与交叉验证:小样本案例
我对时间序列设置中的模型选择感兴趣。具体来说,假设我要从具有不同滞后顺序的ARMA模型池中选择一个ARMA模型。最终目的是预测。 型号选择可以通过 交叉验证, 使用信息标准(AIC,BIC), 在其他方法中。 Rob J. Hyndman提供了一种对时间序列进行交叉验证的方法。对于相对较小的样本,交叉验证中使用的样本大小可能与原始样本大小在质量上有所不同。例如,如果原始样本大小为200个观测值,则可以考虑通过获取前101个观测值并将窗口扩展到102、103,...,200个观测值来获得100个交叉验证结果,从而开始交叉验证。显然,对于200个观测值而言,合理地简约的模型对于100个观测值而言可能太大,因此其验证误差将很大。因此,交叉验证可能会系统地偏爱过于简约的模型。由于样本大小不匹配,这是不希望的效果。 交叉验证的替代方法是使用信息标准进行模型选择。由于我关心预测,因此我将使用AIC。尽管AIC渐近等效于最小化时间序列模型的样本外一步预测MSE(根据Rob J.Hyndman的帖子),但我怀疑这与样本有关在这里是否有意义我关心的尺寸不是很大... 问题:对于中/小样本,我应该在时间序列交叉验证中选择AIC吗? 一些相关的问题可以在这里,这里和这里找到。


2
在弹性净回归中,为什么lambda“与最小值之间的标准误差之内”是lambda的推荐值?
我了解lambda在弹性净回归中扮演什么角色。而且我可以理解为什么要选择lambda.min,即将交叉验证错误最小化的lambda值。 我的问题是在统计资料中建议在哪里使用lambda.1se,即lambda的值可将CV误差加一个标准误差减到最小?我似乎找不到正式的引文,甚至找不到为什么这通常很有价值的原因。我知道这是一个限制性更强的正则化方法,会将参数进一步缩小为零,但我并不总是确定lambda.1se比lambda.min更好的选择。有人可以帮忙解释一下吗?

3
处理大,小问题时的模型稳定性
介绍: 我有一个经典的“大p,小n问题”数据集。可用样本数n = 150,而可能的预测变量数p = 400。结果是一个连续变量。 我想找到最“重要”的描述符,即那些最能解释结果并帮助建立理论的描述符。 经过对该主题的研究,我发现LASSO和Elastic Net通常用于大p小n的情况。我的一些预测变量具有高度相关性,因此我想在重要性评估中保留它们的分组,因此,我选择使用Elastic Net。我想我可以使用回归系数的绝对值来衡量重要性(如果我错了,请纠正我;我的数据集是标准化的)。 问题: 由于样本数量少,如何获得稳定的模型? 我目前的方法是在90%的数据集上以10倍的交叉验证平均MSE分数在网格搜索中找到最佳调整参数(λ和alpha)。然后,我在整个数据集的90%上使用最佳调整参数训练模型。我可以在数据集的10%保留率(仅占15个样本)上使用R平方来评估我的模型。 反复运行此过程,我发现R平方评估存在很大差异。同样,非零预测变量的数量及其系数也会变化。 如何获得对预测变量重要性的更稳定评估以及对最终模型性能的更稳定评估? 我可以重复运行我的程序来创建多个模型,然后平均回归系数吗?还是应该使用模型中预测变量的出现次数作为其重要性得分? 目前,我得到40-50个非零预测变量。为了更好的稳定性,我应该更严厉地惩罚一些预测变量吗?

2
如何比较和验证混合效应模型?
通常如何比较(线性)混合效果模型?我知道可以使用似然比检验,但是如果一个模型不是另一个正确模型的“子集”,这将不起作用? 模型df的估算是否总是简单明了?固定效应数量+估计的方差成分数量?我们是否忽略随机效应估计? 验证呢?我的第一个想法是交叉验证,但是考虑到数据的结构,随机折叠可能不起作用。“遗漏一个主题/集群”的方法是否合适?那把一个观察结果留在外面怎么办? 锦葵Cp可解释为模型预测误差的估计。通过AIC进行模型选择会尝试最大程度地减少预测误差(因此,如果误差是高斯型,我相信Cp和AIC应该选择相同的模型)。这是否意味着AIC或Cp可以用于根据预测误差从一些非嵌套模型的集合中选择“最佳”线性混合效应模型?(前提是它们适合相同的数据)BIC是否仍然更有可能在候选人中选择“真实”模型? 我还给人的印象是,在通过AIC或BIC比较混合效果模型时,我们仅将固定效果计算为“参数”,而不是实际模型df。 关于这些主题有没有好的文献?是否值得研究cAIC或mAIC?他们在AIC之外是否有特定的应用程序?

2
选择贝叶斯模型或交叉验证的最佳方法?
当尝试在各种模型或要包括的特征数量中进行选择时,比如说预测,我可以想到两种方法。 将数据分为训练集和测试集。更好的是,使用自举或k折交叉验证。每次都在训练集中进行训练,并计算测试集中的误差。绘制测试误差与参数数量的关系图。通常,您会得到以下内容: 通过对参数值进行积分来计算模型的可能性。即,计算,并将其与参数数量相对应。然后,我们得到如下内容:∫θP(D | θ )P(θ )dθ∫θP(d|θ)P(θ)dθ\int_\theta P(D|\theta)P(\theta)d \theta 所以我的问题是: 这些方法是否适合解决此问题(确定模型中要包含多少参数,或在多个模型中进行选择)? 它们相等吗?可能不会。他们会在某些假设下还是在实践中给出相同的最佳模型? 除了在贝叶斯模型等中指定先验知识的通常的哲学差异之外,每种方法的优缺点是什么?您会选择哪一个? 更新: 我还发现了有关比较AIC和BIC 的相关问题。看来我的方法1与AIC渐近等效,而方法2与BIC渐近相关。但我在那里也读到,BIC等同于“留一法”简历。这意味着在LOO CV等于K倍CV的情况下,训练误差最小值和贝叶斯似然最大值相等。邵军的一篇也许非常有趣的论文“ 线性模型选择的渐近理论 ”与这些问题有关。

5
如何分割数据集以进行时间序列预测?
我有一家面包店的历史销售数据(每天3年以上)。现在,我想构建一个模型来预测未来的销售量(使用工作日,天气变量等功能)。 我应该如何分割数据集以拟合和评估模型? 是否需要按时间顺序进行训练/验证/测试拆分? 然后,我将对火车和验证集进行超参数调整吗? (嵌套)交叉验证是否是解决时序问题的错误策略? 编辑 这是我跟随@ ene100建议的URL之后遇到的一些链接: 罗布·海恩德曼(Rob Hyndman)在理论上和实践中(使用R代码)描述“滚动预测的起源” 滚动预测原点的其他术语是“前行优化”(此处或此处),“滚动范围”或“移动原点” 似乎这些技术在不久的将来不会集成到scikit-learn中,因为“这些技术的需求和符号性尚不清楚”(在此处说明)。 而这是时间序列交叉验证其他建议。

2
弹性网逻辑回归中选择最佳alpha
我正在使用glmnetR中的程序包通过在的网格上从0到1 选择lambda值来对医疗数据集执行弹性网逻辑回归。我的缩写代码如下:αα\alpha alphalist <- seq(0,1,by=0.1) elasticnet <- lapply(alphalist, function(a){ cv.glmnet(x, y, alpha=a, family="binomial", lambda.min.ratio=.001) }) for (i in 1:11) {print(min(elasticnet[[i]]$cvm))} 对于从到每个alpha值,以为增量输出平均交叉验证误差:0.00.00.01.01.01.00.10.10.1 [1] 0.2080167 [1] 0.1947478 [1] 0.1949832 [1] 0.1946211 [1] 0.1947906 [1] 0.1953286 [1] 0.194827 [1] 0.1944735 [1] 0.1942612 [1] 0.1944079 [1] 0.1948874 根据我在文献中所读的内容,的最佳选择是使cv错误最小化。但是在整个Alpha范围内,误差有很多变化。我看到了几个局部最小值,全局最小值为。αα\alpha0.1942612alpha=0.8 安全alpha=0.8吗?或者,带来的变动,我应该重新运行cv.glmnet更多的交叉验证倍(如而不是),或者是更大数量的之间的增量,并得到CV错误路径清晰的画面?10 α202020101010αα\alphaalpha=0.01.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.