statistics - 特征选择和交叉验证

标签 statistics machine-learning feature-extraction feature-selection cross-validation

我想训练回归模型,为此我使用随机森林模型。但是,我还需要进行特征选择,因为我的数据集中有很多特征,我担心如果我使用了所有特征,那么我会过度拟合。为了评估我的模型的性能,我还执行了 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 的性能是否可以反射(reflect)最终模型的最终性能,特别是因为最终模型与 5 倍中的每个模型具有不同的特征(因为它是 5 个 CV 中每个模型的选定特征的并集)

最佳答案

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

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

现在,一旦 CV 过程完成,您就可以估计模型的准确性,这是单个 CV 折叠准确性的简单平均值。

就在完整数据集上训练模型的最终特征集而言,请执行以下操作来选择最终特征集。

-- 每次您按照上述方式对折叠进行 CV 时,请为您在该特定折叠中选择的功能投票。在 5 倍 CV 结束时,选择特定数量的得票最高的特征。

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

关于statistics - 特征选择和交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19655674/

相关文章:

machine-learning - 标准化测试集但范围更高

numpy - 从批处理版本重建 torch 张量

python - 如何利用Python的特征聚合进行降维?

statistics - 模拟/统计/预测研究生学位?

r - R 中的卡方拟合优度检验

statistics - 分类时计算置信度

machine-learning - Weka - StringtoVector 过滤器不工作

r - R中线性回归截距的置信区间

python - 将时间序列数据输入 Tensorflow 进行 LSTM 分类器训练

machine-learning - 哪些FFT描述符应用作实现分类或聚类算法的功能?