Questions tagged «cross-validation»

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

4
邵的留一法交叉验证的结果何时适用?
邵军在他的论文中通过交叉验证选择线性模型,表明对于多元线性回归中的变量选择问题,留一法交叉验证(LOOCV)的方法“渐近不一致”。用简单的英语来说,它倾向于选择变量太多的模型。Shao在模拟研究中表明,即使只有40个观察结果,LOOCV的表现也不能胜过其他交叉验证技术。 这篇论文有些争议,有些忽略了(发表10年后,我的化学计量学同事从未听说过,并且很乐意使用LOOCV进行变量选择...)。还有一种信念(对此我有罪),其结果超出了最初的有限范围。 那么问题是:这些结果延伸到多远?它们适用于以下问题吗? 逻辑回归/ GLM的变量选择? Fisher LDA分类的变量选择? 使用具有有限(或无限)内核空间的SVM进行变量选择? 比较模型中的分类,比如说使用不同内核的SVM? 比较线性回归模型,比如说将MLR与Ridge回归进行比较? 等等

5
过度拟合:没有银弹吗?
我的理解是,即使遵循正确的交叉验证和模型选择程序,如果人们对模型的搜索足够困难,就会出现过度拟合的情况,除非对模型的复杂性,期限施加了限制。此外,很多时候人们尝试从数据中学习对模型复杂性的惩罚,这会破坏他们可以提供的保护。 我的问题是:以上陈述有多少真相? 我经常听到ML的实践者说:“ 在我的公司/实验室,我们总是尝试使用每种可用的模型(例如,从caret或scikit-learn之类的库中获得),看看哪种模型最合适。” 我经常争论说,即使他们认真对待交叉验证并以他们想要的任何方式保留保留集,这种方法也很容易过拟合。此外,他们搜索的难度越大,就越容易适应。换句话说,过度优化是一个真正的问题,没有启发式方法可以帮助您系统地与之抗衡。我这样想是不是错了?

2
选择模型后进行交叉验证(错误归纳)
注意:大小写为n >> p 我正在阅读《统计学习的元素》,关于交叉验证的“正确”方法有很多提及(例如,第60页,第245页)。具体来说,我的问题是在进行模型搜索时,如何使用k倍CV或自举法评估最终模型(没有单独的测试集)?似乎在大多数情况下(没有嵌入式功能选择的ML算法) 功能选择步骤 元参数选择步骤(例如,SVM中的成本参数)。 我的问题: 我已经看到,可以在整个训练集上进行特征选择并放在一边的情况下,进行特征选择步骤。然后,使用k折CV,在每折中使用特征选择算法(获得每次可能选择的不同特征)并平均误差。然后,您将使用通过所有数据(预留的数据)选择的特征来训练最终模式,但是将交叉验证中的错误用作模型未来性能的估计。它是否正确? 当您使用交叉验证选择模型参数时,随后如何估算模型性能?您是使用第54页(pdf)所示的嵌套简历还是其他方法,还是上面#1的相同过程? 当您同时执行两个步骤(功能和参数设置)时.....然后您会做什么?复杂的嵌套循环? 如果您有单独的保留样本,那么担心会消失吗,您可以使用交叉验证来选择功能和参数(不必担心,因为您的性能估算将来自保留集)?

3
使用k折交叉验证时是否需要测试集?
我一直在阅读有关k折验证的信息,我想确保自己了解其工作原理。 我知道对于保持方法,数据分为三组,测试集仅在最后用于评估模型的性能,而验证集用于调整超参数等。 在k折方法中,我们是否仍然保留最后的测试集,仅将剩余数据用于训练和超参数调整,即我们将剩余数据分成k折,然后在训练后使用平均精度每折(或我们选择用来调整超参数的任何性能指标)?还是根本不使用单独的测试集,而是将整个数据集简单地分成k折(如果是这种情况,我假设我们只是将k折的平均准确度视为最终准确度)?

1
我应该基于微观平均评估还是宏观平均评估措施做出决策?
我对具有相同数据集的不同二进制分类算法进行了10倍交叉验证,并获得了微观和宏观平均结果。应该提到的是,这是一个多标签分类问题。 在我的情况下,真负数和真正数的权重相等。这意味着正确预测真实负值与正确预测真实正值同样重要。 微观平均指标低于宏观平均指标。这是神经网络和支持向量机的结果: 我还使用另一种算法对同一数据集进行了百分比分割测试。结果是: 我希望将百分比拆分测试与宏观平均结果进行比较,但这公平吗?我不认为宏观平均结果会偏误,因为真实的正数和真实的负数的权重相等,但是再说一次,我想知道这是否与将苹果与桔子进行比较相同? 更新 基于这些评论,我将展示如何计算微观和宏观平均值。 我要预测144个标签(与要素或属性相同)。计算每个标签的精度,召回率和F量度。 --------------------------------------------------- LABEL1 | LABEL2 | LABEL3 | LABEL4 | .. | LABEL144 --------------------------------------------------- ? | ? | ? | ? | .. | ? --------------------------------------------------- 考虑二进制评估度量B(tp,tn,fp,fn),该度量是基于真实肯定(tp),真实否定(tn),错误肯定(fp)和错误否定(fn)计算的。特定度量的宏观和微观平均值可以计算如下: 使用这些公式,我们可以计算出微观和宏观平均值,如下所示: 因此,微平均测度将所有tp,fp和fn(针对每个标签)相加,然后进行新的二进制评估。宏平均度量将所有度量(精度,召回率或F度量)相加并除以标签数,这更像是平均值。 现在,问题是使用哪个?

4
在交叉验证之外调整超参数有多糟糕?
我知道在交叉验证之外执行超参数调整会导致对外部有效性的偏高估计,因为您用来衡量性能的数据集与用于调整功能的数据集相同。 我想知道的是,这个问题有多严重。我可以理解,这对于选择功能真的很不利,因为这使您可以调整大量的参数。但是,如果您使用的是LASSO之类的东西(它只有一个参数,即正则化强度),或者是一个没有特征选择的随机森林(它可以具有一些参数,却没有添加/删除噪声特征那么引人注目)? 在这些情况下,您对培训误差的估计有多乐观? 我非常感谢您提供任何有关此方面的信息-案例研究,论文,文献数据等。谢谢! 编辑:为澄清起见,我不是在谈论在训练数据上评估模型性能(即根本不使用交叉验证)。“交叉验证之外的超参数调整”是指仅使用交叉验证来估计每个模型的性能,而不包括外部第二交叉验证循环来校正超参数调整过程中的过拟合(与在训练过程中过度安装)。请参见此处的答案。

2
如何在多标签分类器上使用scikit-learn的交叉验证功能
我正在一个5个类的数据集上测试不同的分类器,每个实例可以属于一个或多个这些类,因此我正在使用scikit-learn的多标签分类器sklearn.multiclass.OneVsRestClassifier。现在,我想使用进行交叉验证sklearn.cross_validation.StratifiedKFold。这将产生以下错误: Traceback (most recent call last): File "mlfromcsv.py", line 93, in <module> main() File "mlfromcsv.py", line 77, in main test_classifier_multilabel(svm.LinearSVC(), X, Y, 'Linear Support Vector Machine') File "mlfromcsv.py", line 44, in test_classifier_multilabel scores = cross_validation.cross_val_score(clf_ml, X, Y_list, cv=cv, score_func=metrics.precision_recall_fscore_support, n_jobs=jobs) File "/usr/lib/pymodules/python2.7/sklearn/cross_validation.py", line 1046, in cross_val_score X, y = check_arrays(X, …

1
libsvm“达到最大迭代次数”警告和交叉验证
我在C-SVC模式下使用2级多项式内核的libsvm,并且需要训练多个SVM。每个训练集都有10个特征和5000个向量。在训练过程中,我收到有关我训练的大多数SVM的警告: WARNING: reaching max number of iterations optimization finished, #iter = 10000000 有人可以解释这个警告的含义,以及如何避免它吗? 我还想对我的模型进行交叉验证,以便确定γ和C(正则化)的最佳选择。我的计划是仅尝试这10个值的每种组合:两个参数都为0.00001、0.0001、0.001、0.01、0.1、1、10、100、1000、10000,然后看看哪种组合在交叉验证期间产生最佳精度。这够了吗?我应该在此间隔中使用更多的值,还是应该选择更大的间隔?

2
交叉验证与经验贝叶斯估计超参数
给定一个层次模型,我想要一个两阶段的过程来拟合模型。首先,固定少数几个超参数θ,然后对其余参数ϕ进行贝叶斯推断。为了修复超参数,我正在考虑两种选择。p(x|ϕ,θ)p(x|ϕ,θ)p(x|\phi,\theta)θθ\thetaϕϕ\phi 使用经验贝叶斯(EB)并最大化边际可能性(整合包含高维参数的模型的其余部分)。p (所有数据| θ)p(所有数据|θ)p(\mbox{all data}|\theta) 使用交叉验证(CV)技术(例如倍交叉验证)来选择使似然性p最大化的θ (测试数据| 训练数据,θ )。ķķkθθ\thetap (测试数据| 训练数据,θ )p(测试数据|训练数据,θ)p(\mbox{test data}|\mbox{training data}, \theta) EB的优势在于,我可以一次使用所有数据,而对于CV,我需要(潜在地)多次计算模型似然并搜索。在许多情况下,EB和CV的性能是可比的(*),通常EB的估算速度更快。θθ\theta 问题:是否存在将两者联系起来的理论基础(例如,EB和CV在大数据限制内是相同的)?还是将EB与某些通用性标准(例如经验风险)联系起来?有人可以指出良好的参考资料吗? (*)作为说明,这是墨菲的机器学习(Murphy's Machine Learning)第7.6.4节中的图,他说,对于岭回归,两个过程都产生非常相似的结果: 墨菲还说,经验贝叶斯(他称其为“证据程序”)相对于CV的主要实践优势是,当由许多超参数组成时(例如,对每个特征进行单独惩罚,如自动相关性确定或ARD)。根本不可能使用CV。θθ\theta


4
边缘情况下精度和召回率的正确值是多少?
精度定义为: p = true positives / (true positives + false positives) 对不对,作为true positives和false positives做法0,精度接近1? 召回相同的问题: r = true positives / (true positives + false negatives) 我目前正在实施统计测试,需要计算这些值,有时分母为0,我想知道在这种情况下应返回哪个值。 PS:请原谅,不恰当的标签,我想用recall,precision和limit,但我不能创造新的标签呢。
20 precision-recall  data-visualization  logarithm  references  r  networks  data-visualization  standard-deviation  probability  binomial  negative-binomial  r  categorical-data  aggregation  plyr  survival  python  regression  r  t-test  bayesian  logistic  data-transformation  confidence-interval  t-test  interpretation  distributions  data-visualization  pca  genetics  r  finance  maximum  probability  standard-deviation  probability  r  information-theory  references  computational-statistics  computing  references  engineering-statistics  t-test  hypothesis-testing  independence  definition  r  censoring  negative-binomial  poisson-distribution  variance  mixed-model  correlation  intraclass-correlation  aggregation  interpretation  effect-size  hypothesis-testing  goodness-of-fit  normality-assumption  small-sample  distributions  regression  normality-assumption  t-test  anova  confidence-interval  z-statistic  finance  hypothesis-testing  mean  model-selection  information-geometry  bayesian  frequentist  terminology  type-i-and-ii-errors  cross-validation  smoothing  splines  data-transformation  normality-assumption  variance-stabilizing  r  spss  stata  python  correlation  logistic  logit  link-function  regression  predictor  pca  factor-analysis  r  bayesian  maximum-likelihood  mcmc  conditional-probability  statistical-significance  chi-squared  proportion  estimation  error  shrinkage  application  steins-phenomenon 

2
贝叶斯关于过度拟合的思考
我花了很多时间来开发用于验证传统的频繁统计领域中的预测模型的方法和软件。将更多的贝叶斯思想付诸实践和教学时,我发现需要拥抱一些关键差异。首先,贝叶斯预测模型要求分析人员认真考虑可能针对候选特征进行定制的先验分布,这些先验将拉近模型(即,针对不同的预测特征对缩略/惩罚/正则化进行不同程度的惩罚) )。其次,“真实”贝叶斯方法不会产生单个模型,而是会获得整个后验分布以进行预测。 考虑到这些贝叶斯特征,过度拟合意味着什么?我们应该评估一下吗?如果是这样,怎么办?我们如何知道贝叶斯模型何时可用于现场?还是当我们使用我们为预测而开发的模型时,后验将带有所有谨慎的不确定性,这是一个有争议的问题吗? 如果我们强制将贝叶斯模型提炼为单个数字,例如后均值/众数/中位数风险,那么思维将如何改变? 我在这里看到一些相关的想法。在这里可以找到平行讨论。 后续问题::如果我们完全是贝叶斯模型,并且在查看数据之前花了一些时间在先验上,并且我们在适当地指定了数据似然性的情况下拟合了模型,那么我们是否必须对模型过度拟合感到满意?还是我们需要做一些我们在常人世界中所做的事情,在该世界中,随机选择的主题在平均水平上可能会被很好地预测,但是如果我们选择一个预测值非常低或预测值非常高的主题,则会出现回归是什么意思?

2
插入符号训练对glmnet是否对alpha和lambda交叉验证?
R caret包是否同时针对模型alpha和模型lambda进行交叉验证glmnet?运行此代码, eGrid <- expand.grid(.alpha = (1:10) * 0.1, .lambda = (1:10) * 0.1) Control <- trainControl(method = "repeatedcv",repeats = 3,verboseIter =TRUE) netFit <- train(x =train_features, y = y_train, method = "glmnet", tuneGrid = eGrid, trControl = Control) 培训日志如下所示。 Fold10.Rep3: alpha=1.0, lambda=NA 什么lambda=NA意思

1
集成学习的k折交叉验证
我对如何对数据进行分区以进行整体学习的k倍交叉验证感到困惑。 假设我有一个用于分类的整体学习框架。我的第一层包含分类模型,例如svm,决策树。 我的第二层包含一个投票模型,该模型结合了第一层的预测并给出了最终预测。 如果我们使用5折交叉验证,我正在考虑使用5折,如下所示: 3折训练第一层 1折训练第二层 1折测试 这是正确的方法吗?第一和第二层的训练数据是否应该独立?我认为它们应该是独立的,这样整体学习框架将很健壮。 我的朋友建议第一层和第二层的训练数据应该相同,即 4折训练第一层和第二层 1折测试 这样,我们将获得更准确的整体学习框架错误,并且该框架的迭代调整将更准确,因为它基于单个训练数据。而且,第二层可能偏向于独立训练数据 任何建议都将不胜感激

1
分层抽样与随机抽样在分类中生成训练数据的好处
我想知道在将原始数据集分为训练和测试集进行分类时,使用分层抽样而不是随机抽样是否有任何/某些优势。 另外,分层抽样是否比随机抽样给分类器带来更大的偏差? 我想使用分层抽样进行数据准备的应用程序是一个随机森林分类器,在2上进行了训练2323\frac{2}{3}原始数据集的 3。在分类器之前,还有一个合成样本生成的步骤(SMOTE [1]),可以平衡类的大小。 [1] Chawla,Nitesh V.等。“ SMOTE:合成少数族群过采样技术。 ”人工智能研究杂志16(2002):321-357。

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.