我目前正在研究我的第一个机器学习模型(Palmer Penguins 数据集)。我将训练 3 个机器学习模型,每个模型都使用不同的模型架构(决策树、随机森林和梯度提升),并将它们相互比较。我知道,在我的特殊情况下,如果我想比较三种不同模型的准确性,则需要进行测试/训练拆分。但是,我们是否总是需要将数据集拆分为训练集和测试集?
让我们举一个随机森林算法的例子——我们可以使用 OOB 分数评估我们的模型,并在不执行训练/测试拆分的情况下执行实际测试。由于我们的训练集中已经有一堆实际上不会用于训练的样本,我认为将它们用于测试可能是一个好主意,而不是通过将训练集显式拆分为训练/测试来减少训练集放。我认为当我们有小数据集(例如 Palmer Penguins)时,当我们从训练中丢弃的每个样本都可能对模型性能产生重大影响时,这种方法可能特别有用。
所以这里又是一个问题——测试/训练拆分真的总是必要的吗?为什么它被认为是应该始终执行的事情?