从K折交叉验证中选择哪个模型

问题描述 投票:0回答:5

我正在阅读有关交叉验证以及如何使用它来选择最佳模型和估计参数的内容,但我并没有真正理解它的含义。

假设我构建一个线性回归模型并进行 10 倍交叉验证,我认为这 10 个中的每一个都会有不同的系数值,现在我应该从 10 个不同的系数中选择哪个作为我的最终模型或估计参数。

或者我们使用交叉验证只是为了找到平均误差(在我们的例子中是 10 个模型的平均值)并与另一个模型进行比较?

validation machine-learning statistics cross-validation statistics-bootstrap
5个回答
10
投票

如果您构建一个线性回归模型并进行 10 倍交叉验证,实际上这 10 个模型中的每一个都会有不同的系数值。使用交叉验证的原因是,您可以对线性模型的错误有一个可靠的了解,而不是仅在一次训练/测试分割上对其进行评估,这可能是不幸的,也可能是太幸运的。 CV 更加稳健,因为没有十次分割可以全部十次幸运或全部十次不幸。

然后通过对整个训练集进行训练来获得最终模型 - 这就是最终系数的来源。


2
投票

交叉验证用于查看模型预测的准确性。正如您可能知道的那样,通过拆分相同的数据来对相同的数据进行多次测试是非常明智的(即,如果您没有足够的训练数据,那么这很好用)。

举个例子,它可以用来确保你没有过度拟合函数。所以基本上,当你通过交叉验证完成你的函数时,你会尝试你的函数,如果你发现错误在某个地方增长很多,你就会回去调整参数。

编辑: 阅读维基百科以更深入地了解其工作原理:https://en.wikipedia.org/wiki/Cross-validation_%28statistics%29


2
投票

您基本上将网格搜索与交叉验证混淆了。交叉验证背后的想法基本上是检查模型在现实世界应用程序中的表现如何。因此,我们基本上尝试以不同的比例随机分割数据并验证其性能。应该注意的是,模型的参数在整个交叉验证过程中保持不变。

在网格搜索中,我们尝试找到可能的最佳参数,这些参数可以在特定的数据分割上提供最佳结果(例如 70% 的训练和 30% 的测试)。因此在这种情况下,对于同一模型的不同组合,数据集保持不变。

在此处阅读有关交叉验证的更多信息


1
投票

交叉验证主要用于不同模型的比较。 对于每个模型,您可能会得到 k 个验证集上的平均泛化误差。然后您将能够选择平均生成误差最低的模型作为您的最佳模型。


1
投票

交叉验证或 CV 使我们能够比较不同的机器学习方法,并了解它们在实践中的效果如何。

场景-1(与问题直接相关)

  • 是的,CV 可以用来知道哪种方法(SVM、随机森林等)效果最好,我们可以选择该方法来进一步工作。

(从这些方法中,将为每种方法生成和评估不同的模型,并为每种方法计算平均指标,最佳平均指标将有助于选择方法)

  • 获得有关最佳方法/或最佳参数的信息后,我们可以在训练数据集上训练/重新训练我们的模型。
  • 对于参数或系数,可以通过网格搜索技术来确定。 参见网格搜索

场景2:

假设您有少量数据,并且想要对数据进行训练、验证和测试。然后将如此少量的数据分为三组,大大减少训练样本,结果将取决于训练集和验证集对的选择。 CV 将在这里拯救你。在这种情况下,我们不需要验证集,但仍然需要保存测试数据。 模型将在 k-1 份训练数据上进行训练,剩余的 1 份将用于验证数据。将生成平均值和标准差指标,以查看模型在实践中的表现如何。

© www.soinside.com 2019 - 2024. All rights reserved.