R2R2分数与 OOB 分数随机森林

机器算法验证 随机森林
2022-04-09 03:26:43

我是机器学习的新手,一直在努力学习。我将药物成分数据作为自变量,将其功效值作为因变量。

我将它分成训练集和测试集(0.8:0.2)并将模型拟合到训练集。然后我尝试使用随机森林方法进行回归。

用于预测训练集的结果模型给出R2准确度为 0.97,测试集为 0.82。我一直在尝试更改射频参数,但这是我能达到的最高测试精度。

我还发现 OOB 得分为 0.85。

我的问题是,这种方法对吗?我一直在互联网上研究随机森林,发现随机森林的工作方式是通过装袋,因此模拟 CV。拆分数据是正确的做法吗?并且可以R2使用分数,或者OOB分数是要知道模型准确性的吗?也许两者兼而有之?

2个回答

在横截面数据集(没有时间序列或面板数据)中,随机森林真实性能的 OOB 估计通常非常准确,在我看来甚至可以替代(交叉)验证。换句话说,在这种情况下,您可以相信 OOB 的准确性。这与 insample(训练集)准确性形成对比:通过构建,随机森林往往会在训练数据上过度拟合,因为单个树通常非常深且不稳定。所以不要被 97% 的样本内准确率/R 平方所吸引。

一个警告:根据您的描述,您已使用测试集来优化模型的超参数。这是不合适的。测试集的作用是对最终模型的性能有一个印象。所以你基本上只使用一次。在模型优化中使用保留测试样本没有意义。在测试数据上很容易过拟合!那将是单独的验证集、交叉验证或 OOB 信息的作用。

拆分数据的方式很好,但使用测试用例改进模型是不对的。

...但这是最高的测试精度...

你不能那样做。您应该查看交叉验证的准确性,即您的 OOB。

看看就好R2,但OOB通常被认为是最公正的方法。你应该考虑OOBR2除非你有充分的理由。