在对每个代理模型进行网格搜索后,您可以并且应该检查以下几件事:
- 优化参数的变化(此处为和)。
最优参数是否稳定?如果没有,你很可能会遇到麻烦。γC
- 比较内部和外部交叉验证的报告性能。
如果内部(即调整)交叉验证看起来比外部(最终模型的验证)好得多,那么你也有麻烦了:你过拟合了。存在很大的风险,即调整的参数根本不是最优的。但是,如果外部交叉验证正确完成(所有测试集都真正独立于各自的代理模型),那么至少您仍然可以对模型的性能进行无偏(!)估计。但是你不能确定它是最优的。
- 最优值有多明显?对于次优参数,性能是否会迅速下降?最佳性能有多好?
关于模型选择的过度拟合有很多话要说。但是,请记住,方差和乐观偏差确实会造成伤害
- 方差意味着您可能会意外地最终远离真正的最佳超参数。
- 但偏见也会受到伤害:如果您过度拟合,您可能会遇到许多模型看起来非常适合内部交叉验证的情况(但实际上并非如此)。在这种情况下,调整可能会误入歧途,因为它无法识别模型之间的差异。
- 如果偏差取决于超参数,那么你就有大麻烦了。
如果您对示例感兴趣并且可以阅读德语,我可以将我的文凭论文放到网上。
以我的经验,调整超参数对于过度拟合来说是一个非常有效的想法......
现在,如果您意识到自己过度拟合,您主要有两个选择:
- 报告优化存在过度拟合问题,但您进行了适当的外部验证,导致......(外部交叉验证结果)。
- 限制模型的复杂性。一种方法是修复超参数:
作为调整每个训练集的超参数的替代方法,您可以预先指定(超)参数(即预先修复它们)。我为我的模型尽可能多地这样做,因为我的案例通常比你的少,见下文。
但是,必须事先真正诚实地进行此修复:例如,我向一位同事询问了他在类似数据集(独立实验)上的优化参数,或者进行了预实验,包括对参数进行网格搜索。然后使用第一个实验来固定一些实验参数以及模型参数,以进行实际实验和数据分析。请参阅下面的进一步说明。
当然,可以对自动优化的模型(双重或嵌套验证)进行适当的测试,但您的样本量可能不允许将数据拆分两次。
在这种情况下,恕我直言,报告对使用如何选择建模参数的专业经验构建的模型的诚实估计要比报告对某种自动优化模型的过度乐观估计要好得多。
关于这种情况的另一种观点是你必须权衡
- 由于为参数优化留出了另一堆案例(较小的训练样本量 => 更差的模型,但“最佳”参数),导致性能更差
- 由于专家的次优参数修复(但在更大的训练数据上),性能更差。
关于类似问题的一些类似想法:https ://stats.stackexchange.com/a/27761/4598
关于参数的固定和 Dikran Marsupial 的评论
我正在使用术语超参数,因为 Dikran Marsupial 在他的论文中使用它(他的答案中的链接)
我使用光谱数据。这是一种测量,其中数据分析和建模通常包括相当多的预处理。这可以看作是超参数(例如基线应该使用什么阶的多项式?应该包括哪些测量通道?)。还有其他更接近您的 svm 参数的决策,例如,如果在训练“真实”模型之前进行 PCA 降维,则使用多少主成分?有时我也使用 SVM 分类,所以我必须决定 SVM 参数。
现在,恕我直言,修复超参数的最佳方法是如果您有来自应用程序的原因。例如,我通常根据物理/化学/生物学原因(即关于样本的知识以及由此得出的光谱行为)来决定使用哪种基线。但是,我不知道这种有助于 SVM 参数的论证......
我上面提到的预实验的情况如下:
- 我们获取一堆细胞的数据(想要区分不同的细胞系)。
分析光谱,运行迭代双交叉验证 SVM(在计算服务器上花费一两个晚上)。
- 我观察到,在绝大多数情况下,相同的和被选为最优。其余情况是邻居组合。这个和其他邻居超参数组合具有非常相似的性能(一两个额外的错误分类)γC
- 我还观察到某种过度拟合:外部交叉验证不如调优结果好。这正如预期的那样。
- 尽管如此,超参数的调整范围内的性能仍然存在差异,并且调整网格上的性能看起来相当平滑。好的。
我的结论是:虽然我不能确定最终的超参数是最优的,但外部交叉验证给了我对代理模型性能的正确估计。
在实验部分,我们决定对实验设置进行一些更改(不影响数据信噪比的事情,但在仪器自动化方面更进一步)
我们改进了实验设置并获得了新的光谱。就像细胞一样,它们需要新鲜生长。即新数据集甚至是独立的培养批次。
现在我面临一个决定:我是否应该“跳过”内部交叉验证,只使用我用旧数据确定的超参数?
- 如上所述,我冒着这些预先确定的超参数不是最优的风险。
- 但是我也不能确保通过内部(调整)交叉验证获得真正最优的超参数。
- 但是,对旧数据的调整是稳定的。
- 进行优化时,我将使用更少的样本进行训练:反正我的样本太少(TM)如果我留出更多样本进行第二轮交叉验证,我必须期望获得更差的模型。
所以在那种情况下,我决定使用固定参数(根据类似数据的经验,并且知道将来我们必须做“功课”,包括用大数据重新检查这些决定)。
请注意,重要的是我跳过了内部(调整交叉验证),而不是外部。使用固定的超参数,我可以对可能次优模型的性能进行无偏估计。确实,这个估计有很大的方差,但是无论我是否进行内部调整,这个方差基本相同。
跳过外部交叉验证,我会得到一个调整模型的乐观偏差估计——这取决于应用程序和数据可能毫无价值(如果过于乐观的话),而乐观偏差可能显然是不可接受的。