【问题标题】:feature selection and cross validation特征选择和交叉验证
【发布时间】:2013-11-08 10:59:05
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      使用上述选定的一组特征进行最后一个特征选择过程,然后在完整数据(所有 5 折的组合)上训练模型并将模型投入生产。

      【讨论】:

      • 为什么不在交叉验证后对整个数据进行特征选择?
      猜你喜欢
      • 2015-11-13
      • 2023-03-26
      • 2020-07-10
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 2017-07-07
      • 2013-12-19
      相关资源
      最近更新 更多