神经网络_验证集比训练集获得更高的模型拟合度问题:为什么我的验证集比训练集效果更好?
数据:200个数据点; 90% 用于训练,10% 用于验证
统计:
1.制作验证栏
制作验证列(
训练集(0.90),
验证集(0.10),
测试集(0.00),
公式随机);
2.神经网络:
1 个隐藏层,3 个节点 TanH
Boosting:模型数量(10),学习率(0.1)
配件选项: 行程数量( 10 )
3.以上步骤重复1000次
4.计算训练集和验证集的R平方均值
问题描述:
验证集的均值 R 方比训练集的均值 R 方大得多。 为什么会发生这种情况? 我们甚至尝试不使用惩罚方法,验证集仍然比训练效果更好。
JMP 如何优化验证集的估计参数?
如果我们使用引导森林,为什么情况并非如此?即,对于引导森林,训练集比验证集效果更好。
谢谢。
回复:神经网络验证集比训练集获得更高的模型拟合度你在这里没有打扰任何人! 像您这样的问题是在 JMP 社区中设立讨论区的主要原因之一! 另一方面,一些讨论可能超出了这种格式的范围或能力。
注意:我们正在讨论预测模型, 不是解释模型。 因此,我们只关心模型预测未来的能力。 未来是不可用的,而训练模型并选择模型。
任何类型的交叉验证都不是理论的结果。 它解决了如何执行的问题诚实的评估选择一种模型之前和之后模型的性能。 保留集方法首先是针对大型数据集的情况而开发的。 在这种情况下,推理对模型选择没有帮助。 未来是无法实现的。 该怎么办? 留出或保留一部分数据(验证)。 这些数据不可用于训练程序。 然后将拟合模型应用于保留集以获得模型预测。 模型做得如何? 其他模型表现如何?
由于验证数据用于选择模型,一些建模者保留了第三部分(测试)来评估所选模型。
交叉验证是一个非常好的解决方案,但依赖于原始观察集的大量数据。 当样本量较小时怎么办? K 折方法是专门针对此类情况开发的。 一些建模者将其发挥到极致,将 K 设置为样本大小。 这个版本被称为“漏掉一个.' 在这种情况下,它比保留集效果更好,因为您可以更有效地使用数据。
回复:神经网络验证集比训练集获得更高的模型拟合度亲爱的贝利先生,
按照建议,我使用了神经网络的 k 折交叉验证和逐步回归(全部输入)。 我编写了一个循环并运行每个分析 100 次。 结果表明,验证集的均值 R 方不高于训练集的均值 R 方。
现在我想知道为什么 K 折交叉验证在小样本情况下效果更好,为什么使用神经网络进行保留验证会得到尴尬的结果,即验证集获得更高的均值 R 平方。 理论或数学原因是什么?
谢谢。抱歉再次打扰您。
回复:神经网络验证集比训练集获得更高的模型拟合度JMP Pro 确实在逐步平台下提供了 k 倍回归分析。 它用于确定模型中保留哪些项。 来自 JMP 文档:
K-Fold 交叉验证(仅适用于连续响应。)在选择过程中执行 K-Fold 交叉验证。 选择后,此选项将启用最大 K 重 R 方停止规则(第 250 页的“逐步回归控制面板”)。 了解更多
有关验证的信息,请参阅第 275 页的“使用验证”。
回复:神经网络验证集比训练集获得更高的模型拟合度不,JMP 中的拟合最小二乘平台不提供任何交叉验证。 JMP Pro 中的广义回归平台包含标准线性回归模型,在启动对话框中提供保留交叉验证,并提供 K 折交叉验证作为平台验证选项。
由于样本量较小,您可能会考虑使用 AICc 进行模型选择来代替交叉验证。
如果开源软件能够提供您所需的灵活性,您也可以考虑使用它。 例如,您可以使用 JMP 连接到 R 或 Python 并使用这两种软件。
回复:神经网络验证集比训练集获得更高的模型拟合度亲爱的贝利先生,
谢谢。 我还有一个问题:我们可以在 JMP 中使用 K 折交叉验证和标准最小二乘回归吗?
回复:神经网络验证集比训练集获得更高的模型拟合度谢谢。 是的,我只找到了下面的脚本。 但我无法将它与引导森林模型结合起来。
obj = Open( "$SAMPLE_DATA/Car Poll.jmp" ) << Partition(
Y( :country ),
X( :sex, :marital status, :age, :type, :size )
);
obj << K Fold Crossvalidation( 5 );
obj << Go;
非常感谢您的帮助。
回复:神经网络验证集比训练集获得更高的模型拟合度您不能将 K 折交叉验证与 JMP 中的 Bootstrap Forest 模型选择结合使用。 您只能使用保留集。
请记住,大多数预测模型类型都是针对大型数据集的。 如果数据满足模型假设,您也可以在您的案例中使用多元回归。
回复:神经网络验证集比训练集获得更高的模型拟合度谢谢你的建议。 我们尝试了 k 折,在我们的例子中它效果更好。 然而,新的问题又出现了:如何对bootstrap森林进行k折交叉验证?
谢谢。
回复:神经网络验证集比训练集获得更高的模型拟合度感谢您的建议。 是的,1000 次迭代意味着我们对数据集进行 1000 次随机分割。 确实,验证集的 R 方并不总是大于训练集(见图)。 但对于我们所有的响应参数,验证集的 R 平方均值始终大于训练集的 R 平方均值。 我现在正在用 k-fold 进行分析。 让我们看看会发生什么。
正如贝利先生提到的:
“训练集用于估计模型参数。 验证集用于从候选模型中进行选择。 测试集用于评估所选模型。”
我有两个与上述句子相关的问题:
- 在培训过程中,会准备多少名候选人? 候选人如何计算? 它是由提升决定的——“拟合按学习率缩放的模型的附加序列”吗?
- 软件如何选择最佳候选者? 最佳候选人的标准是什么? 是为验证集提供最佳 R 方的候选者吗?
至于k折,我还有两个问题:
- 如果我们有 200 个数据点,并且我们对训练集和验证集使用 90%/10% 的划分(无重叠),那么我们可能会得到 180 个数据点的训练集和 20 个数据点的验证集。 如果我们使用 10 倍验证方法,情况也是一样的。 是对的吗? k 倍验证和 90%/10% 验证有什么区别?
- 在K折交叉验证中,最佳候选的标准是什么? 如何找到优化模型? 它与 90%/10% 验证的方法相同吗?
在手册中,我读到“当使用 K 折交叉验证时,所描述的过程适用于惩罚参数的每个试验值的数据的每个 K 训练保留分区。 模型适合所有折叠后,验证集似然为总结使用每个单独折叠的参数估计来跨折叠。 这是在选择惩罚参数时优化的值。 参数估计在完整数据集上给出最佳值的折叠是平台保留和使用的参数估计。 导致最好模型的训练-抑制对是其模型诊断在报告中给出的那对。”这是否意味着该模型具有最大的总似然度是最好的?
再次感谢你。

回复:神经网络验证集比训练集获得更高的模型拟合度我不确定,但我认为这种说法并不具有优越性。 它基于训练集和验证集之间均值 R 平方的差异。 事实上,不可能因为抽样分布重叠而优越。 使用正态分布来近似 R 方的采样分布,我使用指定的分布参数值得到正态 PDF 的这两个图:

注意:我知道 R 方由于其边界 [0,1] 而不是正态分布,但这种情况距离两个边界足够远,近似值可以很好地工作。
回复:神经网络验证集比训练集获得更高的模型拟合度如果我理解你的描述,那么我有点困惑。1000 次迭代是指在数据集的 1000 个随机分割上运行神经网络吗?如果是这样,那么我认为如果每一个分割都在验证数据上产生比在训练数据上更好的性能,那就很奇怪了。我对样本大小和特征数量的担忧会导致许多(甚至很多)迭代出现这种行为,但可能不是全部 1000 次。如果我理解正确,那么这可能是您的数据和您拥有的特定功能。如果你愿意发布数据,我也许可以提供更多帮助,但我认为根据你所说的,这耗尽了我的想法 - 除非我不明白你做了什么。
回复:神经网络验证集比训练集获得更高的模型拟合度谢谢你的建议。 我们有七个特征可用作预测变量。 在某些情况下,验证集的 Std 并不大:平均值 R2train = .56,SDtrain = .11;平均值 R2val = .70,SDval = .11。
我们还尝试了十二个预测变量。 我们的结果模式是相同的:1000 次迭代后验证集的均值 R 方始终大于训练集的均值 R 方。
回复:神经网络验证集比训练集获得更高的模型拟合度训练集用于估计模型参数。验证集用于从候选模型中进行选择。 测试集用于评估所选模型。
我同意@dale_lehman您的数据集太小,无法使用保留交叉验证方法。 我推荐K折交叉验证。
回复:神经网络验证集比训练集获得更高的模型拟合度你有多少功能?我仍然对样本量太小表示怀疑。请注意,验证数据的 R 方和标准差都较大。我认为,如果你有足够的功能,你就可以很好地“拟合”相对较小的验证集(即使有 30% 的分割),而不会延续到测试数据。也许 mbailey 可以对此做出一些说明 - 但我的印象是验证数据用于调整神经网络,因此它与测试数据不同,测试数据在建模过程中根本不使用。因此,通过很少的数据点和足够的特征,您可以很好地拟合验证数据,但在测试数据上的性能较差。
回复:神经网络验证集比训练集获得更高的模型拟合度谢谢。 进一步解释我的研究:
对于每次迭代,我在训练和验证集中使用了新的分割。
有训练和验证的结果:mean R2列车= .58, SD列车= .09;意思是R2值= .71,标准差值= .12
响应参数是连续变量。
70%/30% 分割的模式相同。所以,我不太明白验证中发生了什么。 应该不仅仅是测试模型?
例如,当我使用 3 步程序(训练、验证和测试)时,验证集的均值 R 平方再次高于训练的均值 R 平方,而测试集的均值 R 平方则有所下降。 那么测试和验证之间有什么区别呢?
回复:神经网络验证集比训练集获得更高的模型拟合度我忘了提一下,K 折交叉验证专门针对样本量较小的情况。 您是否尝试过此方法而不是验证保留集?
回复:神经网络验证集比训练集获得更高的模型拟合度请确认我对你的研究的理解。 在 1000 个训练事件中的每一个之前,您都将行重新分配给训练和验证保留集吗?
JMP 不会优化验证保留集的训练。 它仅在训练完成后评估验证保留集。
训练和验证保留集的 R 方样本统计量的平均值和标准差是多少?
响应的性质是什么? 是连续的吗? 是绝对的吗? 如果是这样,响应有多少级?
回复:神经网络验证集比训练集获得更高的模型拟合度你说得对,这不是一个典型的结果——尽管它可能而且确实发生了。我怀疑,在这种情况下,这主要是你们最初分裂的结果。10% 的验证集(尤其是观测数量如此之少)意味着验证结果适用于应用于极少数数据点的模型。神经网络可能会使问题变得更加复杂,但即使是 OLS 模型也能很好地拟合 20 个数据点。我相信,如果您将训练/验证比例更改为 70%/30%(特别是如果您还有更多数据),这种异常现象将会消失。