【问题标题】:the way to do the cross validation进行交叉验证的方法
【发布时间】:2019-06-30 22:28:51
【问题描述】:

假设我有 fold1、fold2、fold3。

我用模型 A 训练了 fold1、fold2、fold3。

A) 模型A(fold1) -> 模型A(fold2) -> 模型A(fold3)

B) modelA(fold1) -> 保存的权重 modelA(fold1) -> modelA(fold2)-> 保存的重量模型A(折叠2)->模型A(折叠3)->保存的重量 modelA(fold3) -> 集成 3 权重

哪种方法是进行 k 折交叉验证的正确方法,为什么?

【问题讨论】:

  • 交叉验证背后的想法是,您使用例如 90% 的数据来训练模型,然后使用 10% 的剩余数据进行测试。您这样做 10 次(每次都使用完全不同的测试集)并取平均值。在这里,您似乎使用了所有数据来训练模型?

标签: python cross-validation k-fold


【解决方案1】:

这取决于您的最终目标是什么。 K-Fold CV 用于查找模型超参数。

在此阶段之后,您可以更改验证数据集并使用它训练您的模型。

如果您想利用尽可能多的数据(执行预测),最好在 N 不同的折叠上训练 N 模型并整合它们的预测。这个类似于 boostrap,总而言之,你的集成看到了所有数据,但它并没有过度拟合。不过,这种方法的计算量要高 N 倍,所以它仍然可以归结为您的目标。

最后,您应该通过将不同的模型拟合到您的折叠而不是单个模型来获得更好的结果,但这需要为每个算法提供单独的超参数空间。

【讨论】:

    猜你喜欢
    • 2015-06-11
    • 2020-07-13
    • 2019-09-06
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多