如何从此[外部交叉验证]输出中选择模型?
简短的回答:您没有。
将内部交叉验证视为模型拟合过程的一部分。这意味着包括超参数的拟合(内部交叉验证隐藏的地方)的拟合与任何其他模型估算例程一样。
外部交叉验证估计了此模型拟合方法的性能。为此,您使用通常的假设
- 该外替代模型相当于通过内置的“真实”的模式 与所有数据。k
model.fitting.procedure
- 或者,在情况1.崩溃(重采样验证的悲观偏差)的情况下,至少外部替代模型彼此等效。
这使您可以汇总(平均)测试结果。这也意味着您无需在它们之间进行选择,因为您假定它们基本相同。第二个较弱的假设的失败是模型的不稳定性。k
不要不挑看似最好的替代机型-通常是只“收获”测试的不确定性,导致了偏向乐观。k
那么如何使用嵌套的简历进行模型选择呢?
该内部 CV作选择。
在我看来,从这K个获胜的模型中选择最佳模型并不是一个公平的比较,因为每个模型都是在数据集的不同部分进行训练和测试的。
您说对了,选择代理模型中的一个不是一个好主意。但是你错了的原因。真正原因:见上文。他们没有在相同的数据上训练和测试的事实在这里不会“伤害”。k
- 没有相同的测试数据:如您稍后要声称测试结果一般适用于从未见过的数据,这不会有所作为。
- 没有相同的训练数据:
- 如果模型是稳定的,则没有任何区别:这里的稳定意味着,如果通过用其他情况替换一些情况而“干扰”了训练数据,则模型不会改变(太多)。
- 如果模型不稳定,则三个注意事项很重要:
- 您可以通过使用迭代/重复的 倍交叉验证来实际测量情况是否如此以及在何种程度上。这样一来,您就可以比较由基于略有不同的训练数据的不同模型预测的同一案例的交叉验证结果。k
- 如果模型不稳定,则在倍交叉验证的测试结果上观察到的方差会增加:由于仅总共测试了有限数量的案例,您不仅会有方差,而且还有其他方差由于模型的不稳定性(预测能力的差异)。k
- 如果不稳定是一个真正的问题,则不能很好地推断“真实”模型的性能。
这使我想到了您的最后一个问题:
我从外部K折中得到的分数可以进行哪些类型的分析/检查?
更新@ user99889的问题:如果外部简历发现不稳定,该怎么办?
首先,在外部CV循环中检测模型在这方面未产生稳定的预测与检测前兆误差对于应用程序而言并没有太大不同。这是模型验证(或验证)的可能结果之一,表明我们拥有的模型不适合其目的。
在回复@davips的评论中,我正在考虑解决内部 CV中的不稳定性-即作为模型优化过程的一部分。
但是您当然是对的:如果我们基于外部CV的发现更改模型,则还需要对更改后的模型进行另一轮独立测试。
但是,外部CV的不稳定性也会表明优化设置不正确-因此,找到外部CV的不稳定性就意味着内部CV不会以必要的方式惩罚不稳定性-这就是我的主要观点在这种情况下批评。换句话说,为什么优化允许/导致严重过度拟合的模型?
但是,这里有一个特殊之处,即IMHO 在仔细考虑了确切的情况后,可能会为“最终”模型的进一步更改辩解:由于我们确实发现了过度拟合,因此对该模型的任何提议更改(较少df /更严格的限制或汇总)都会在的方向较少过度拟合(或在较不倾向于过度拟合至少超参数)。独立测试的目的是检测过度拟合-训练过程中已经使用的数据可以检测出过度拟合。
因此,如果我们要谈论的是进一步减少PLS模型中相对良性的潜在变量的数量(如果提议的更改将是完全不同的模型类型,比如说PLS而不是SVM,那么所有押注将不成立),如果我知道我们仍然处于建模的中间阶段,我会更加放松-毕竟,如果优化的模型仍然不稳定,那么毫无疑问需要更多的案例。另外,在许多情况下,您最终将需要进行旨在适当测试性能各个方面(例如,对将来获取的数据的概括)的研究。尽管如此,我仍然坚持需要报告整个建模过程,并且需要仔细讨论这些最新更改的含义。
同样,从已经存在的结果中可以进行包括性能的综合和袋外模拟CV评估 -这是我愿意在这里考虑的良性模型的另一种“后处理”。再一次,如果从一开始就设计该研究以检查聚合没有提供优于单个前提的优势(这是说单个模型稳定的另一种方式),那就更好了。
更新(2019):我对这些情况的思考越多,我越喜欢“显然没有嵌套的嵌套交叉验证”方法。