嵌套交叉验证对不同回归变量的使用

时间:2019-12-30 16:56:21

标签: machine-learning scikit-learn regression

我正在做一个作业,其中必须比较用scikit-learn实现的两个回归变量(随机森林和svr)。我想同时评估两个回归变量,并且在很多地方进行了搜索,遇到了嵌套交叉验证,您可以使用内部循环调整超参数,使用外部循环对训练集的k折进行验证。我想使用内部循环来调整我的回归变量,并使用外部循环来验证两者,因此我将对两个rergessors进行相同的测试和训练折叠。
这是将两个ml算法相互比较的正确方法吗?有没有更好的方法可以将两种算法相互比较?尤其是回归器?

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

编辑
我的数据量很低(大约 200个样本),但功能很多(使用功能选择后大约为大约250个,否则大约为4500 ),所以我决定使用交叉验证。我的因变量是从0到1的连续值。 该问题是推荐者问题,因此在这种情况下测试准确性是没有意义的。因为这只是一项任务,所以我只能使用统计方法来衡量ml算法,而不是征求用户的意见或衡量他们所做的购买。

1 个答案:

答案 0 :(得分:1)

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

但是,有时似乎只是杀伤力大了:https://arxiv.org/abs/1809.09446

此外,取决于ml算法的行为方式,您在谈论什么数据集,它们的特性等,也许您的“比较”可能需要考虑很多其他因素,而不仅仅是预测能力。也许,如果您提供更多详细信息,我们将能够提供更多帮助。