首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特征选择和交叉验证

特征选择和交叉验证
EN

Stack Overflow用户
提问于 2013-10-29 18:32:18
回答 2查看 7.9K关注 0票数 5

我想训练一个回归模型,为了做到这一点,我使用随机森林模型。然而,我也需要进行特征选择,因为我的数据集中有太多的特征,我担心如果我使用了所有的特征,我就会过度拟合。为了评估我的模型的性能,我还执行了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个模型,最终模型的特征将是这5个模型的顶部特征的联合,所以我不确定5CV的性能是否能反映最终模型的最终性能,特别是因为最终模型具有与5折中的每个模型不同的特征(因为它是5个CV中每个模型所选特征的联合)。

EN

回答 2

Stack Overflow用户

发布于 2015-03-04 23:18:12

在任何机器学习算法中,交叉验证都应该是最外层的循环。

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

现在,一旦CV过程完成,您就有了对模型精度的估计,这是单个CV折叠的精度的简单平均值。

对于用于在完整数据集上训练模型的最终特征集,请执行以下操作以选择最终特征集。

--每次按上述方式对文件夹进行CV操作时,请为您在该特定文件夹中选择的特征投票。在5折CV的末尾,选择投票最多的特定数量的特征。

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

票数 7
EN

Stack Overflow用户

发布于 2013-10-30 18:05:32

在完整数据上进行CV (将其拆分为5个部分,并对每个拆分使用不同的部件组合),然后在cv-splits上进行特征选择,然后在选择的输出上进行RF选择。

为什么:因为CV在不同的数据分割下检查你的模型,所以你的模型不会过拟合。由于特征选择可以被视为模型的一部分,因此您必须检查是否存在过拟合。

在你用CV验证了你的模型之后,然后将你的整个数据放入其中,并对这个单一的模型进行转换。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19655674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档