【问题标题】:Usage of nested cross validation for different regressors对不同回归器使用嵌套交叉验证
【发布时间】:2019-12-31 01:16:44
【问题描述】:

我正在做一个任务,我必须比较我用scikit-learn 实现的两个回归量(随机森林和 svr)。我想评估这两个回归量,我在谷歌上搜索了很多,遇到了嵌套交叉验证,你使用内循环来调整超参数,外循环来验证训练集的 k 折。我想使用内部循环来调整我的回归器和外部循环来验证两者,这样我将对两个回归器进行相同的测试和训练折叠。
这是比较两个ml算法的正确方法吗?有没有更好的方法来比较两种算法?特别是回归量?

我在博客中找到了一些条目,但我找不到任何科学论文指出这是一种比较两种算法的好方法,这对我来说很重要。如果有一些指向当前论文的链接,如果您也可以发布它们,我会很高兴。 提前感谢您的帮助!

编辑
我的数据量非常少(大约 200 个样本),但具有大量特征(大约 250,使用特征选择后,否则大约 4500)所以我决定使用交叉验证。我的因变量是从 0 到 1 的连续值。 这个问题是一个推荐问题,所以在这种情况下测试准确性是没有意义的。由于这只是一项任务,我只能用统计方法衡量机器学习算法,而不是询问用户的意见或衡量他们所做的购买。

【问题讨论】:

    标签: machine-learning scikit-learn regression


    【解决方案1】:

    我认为这取决于您要比较的内容。如果您只想比较不同模型的预测能力(分类器和回归器等),嵌套交叉验证通常很好,以免报告过于乐观的指标:https://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html,同时允许您找到最佳的超参数集。

    但是,有时它似乎只是矫枉过正:https://arxiv.org/abs/1809.09446

    此外,根据机器学习算法的行为方式、您所谈论的数据集、它们的特征等,您的“比较”可能需要考虑许多其他因素,而不仅仅是预测能力。也许如果您提供更多详细信息,我们将能够提供更多帮助。

    【讨论】:

    • 嗯,这完全取决于您的目标:选择一个指标并在测试集中对其进行评估。 CV 程序将允许您检查不同(训练)数据集的可生成性。如果您还需要选择超参数,可能需要嵌套
    猜你喜欢
    • 2017-11-12
    • 2017-12-22
    • 2021-06-11
    • 1970-01-01
    • 2016-09-30
    • 2016-06-27
    • 1970-01-01
    • 2020-03-03
    • 2017-01-02
    相关资源
    最近更新 更多