在随机森林回归中设置种子以产生最高准确性是否“公平”?


10

我有一个使用skl构建的随机森林回归,并且我注意到基于将随机种子设置为不同的值会产生不同的结果。

如果我使用LOOCV确定哪种种子效果最好,这是一种有效的方法吗?


1
人们在比赛中做到这一点。尽管对于学术界来说,这很难辩解。
Firebug

2
想想一个极端的情况:我们玩游戏:掷两个骰子,而我们当中获得更高总和的人获胜。但是实际上我可以掷骰子两次。你公平吗?让我指出,设置随机种子是可重复研究不可或缺的一部分,应该始终这样做。但这并不意味着我们应该尝试许多不同的种子,直到找到“有利的种子”。
usεr11852

@usεr11852您如何看待我对当前接受的答案的评论?我不确定这与kmeans这样的随机重启是否有所不同。没有人认为我们应该被迫接受我们所做的第一次运行,以至于随机重新启动内置在R的标准函数中。除非您可能认为该模型运行kmeans 100次而不是运行该模型只是最佳的单一群集
jld18'18

不,这似乎是对实际随机性过度拟合的定义。
马克·怀特

@Chaconne:我完全支持您关于适当验证的观点。那就是说,我认为这两种用例有一个核心区别:在k均值(或一般来说是随机优化)的情况下,我们寻找“最优集”参数,而对于CV,我们关注“代表性集” ”。在早期的案例中,我们努力展示“我们能做多好”,而在后一种情况下,我们试图展现“我们将做多好”。
usεr11852

Answers:


10

答案是否定的

您使用的每个种子模型都会给出不同的结果。这是模型不确定性的结果。通过选择一个特定的种子来最大化验证集的性能,意味着您选择了最适合此验证集的“安排”。但是,这不能保证带有此种子的模型在单独的测试集上会表现更好。这仅表示您已经在验证集中过度拟合了模型

这是为什么您看到许多人在公开测试集上的比赛(例如kaggle)中排名很高,而在隐藏测试集上却下降的原因。绝不认为此方法是正确的方法。


4
是的,这就是为什么交叉验证是一种如此强大的技术的原因,也是人们同时使用验证和测试集的原因(一个作为模型选择的基础,另一个用于获得公正的评估)。
Djib2011 '18

1
我不相信。使用非凸优化时,通常会执行随机重启,因为不同的种子会导致非常不同的模型参数估计,并且由于运气不好,您会获得不良的收敛性。例如,kmeans就是众所周知的。对于随机森林,可能是您的模型最终进行了太多次基准分割。我认为认识到不同的运行会导致不同的模型参数估计,并且某些方法实际上可以比其他方法更好地概括,这并不恰当。当然,所有这些都取决于对样本性能的正确评估。
jld

5
@ user2723494对超参数有效,希望在不增加泛化成本的情况下提高性能。但是,在验证集上一次又一次地微调参数会产生我所描述的相同效果(验证集过拟合)。因为随机种子是由它的性质随机很,则更容易提高性能,由于不是因过度拟合实际上已经产生了更好的模型。
Djib2011 '18

4
@Chaconne我不是说那不可能。但是,通过这种方法,选择的种子比实际生成更好模型的种子更有可能...
Djib2011 '18

4
坦白地说,我从来没有考虑过将ML算法植入种子(并使它们摆脱随机性)是一种好习惯。OP提出了一个新问题。我有兴趣阅读您的回复!
Djib2011 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.