1

我想训练一个回归模型,为了做到这一点,我使用了随机森林模型。但是,我还需要做特征选择,因为我的数据集中有很多特征,如果我使用了所有特征,那么我会过度拟合。为了评估我的模型的性能,我还进行了5次交叉验证,我对这两种方法的问题是正确的,为什么?功能选择和交叉验证

1-我应该将数据分成两半,在上半年做功能选择,并使用这些选定的功能在剩下的一半上进行5次交叉验证(CV)(在这种情况下,5个CV将精确地使用相同的选定功能)。

2-执行以下程序:

1-数据分割成4/5的培训和1/5用于测试 2-分割此训练数据(完整的数据的4/5)到两半: a-)在上半年训练模型,并使用训练的模型做特征选择。 b)使用第一部分中选定的特征,以便在训练数据集的后半部分训练模型(这将是我们最终的训练模型)。 3-对剩余的1/5数据(在训练阶段从未使用)测试模型的性能 4-重复上一步5次,并且在每次我们随机(无替换)地分割数据分成4/5进行训练和1/5进行测试

我唯一担心的是在第二个程序中我们将有5个模型,最终模型的特征将是这五个模型的顶级特征的结合,所以我不确定5CV的性能是否可以反映最终模型的最终性能,特别是因为最终模型具有与5倍中的每个模型不同的特征(因为它是每个模型的选定特征的结合5 CV)

回答

0

Do t他对全部数据进行简历(将其分成5部分,并对每个分组使用不同的部分组合),然后在cv-splits上进行特征选择,然后在选择的输出上进行RF选择。

原因:因为CV在不同的数据拆分下检查您的模型,所以您的模型不会过度拟合。由于特征选择可以被视为你的模型的一部分,你必须检查这个过度拟合。

当您使用CV验证您的模型后,将您的整个数据放入其中,然后执行此单一模型的转换。

此外,如果您担心过度配合,您应该限制深度和数量的树木中的RF。 CV主要用作模型开发过程中的工具,最终模型使用所有数据。

1

交叉验证应该始终是任何机器学习算法中最外层的回路。

因此,将数据分成5组。对于您选择的每个组作为测试集(1/5),在对训练集(4/5)进行特征选择后进行拟合。对所有的CV折叠重复此操作 - 这里有5个折叠。

现在一旦CV程序完成,您就可以估算出您的模型精度,这是您个人CV倍数精度的简单平均值。

只要在整套数据上训练模型的最后一组特征,请执行以下操作来选择最后一组特征。

- 每当您按上述方法在折叠上做一个简历时,就为您在特定折叠中选择的功能投票。在5倍简历末尾,选择具有最高票数的特定数量的功能。

使用上面选择的一组特征来完成特征选择的最后一个过程,然后对完整数据(所有5个折叠的组合)进行训练并将模型移动到生产。