【问题标题】:In feature selection should I use SelectKBest on training and testing dataset separately?在特征选择中,我应该分别在训练和测试数据集上使用 SelectKBest 吗?
【发布时间】:2017-10-27 05:44:37
【问题描述】:

我的问题是我应该先对整个数据集执行selectkbest sklearn 函数以进行特征选择,然后将数据集划分为训练和测试集,还是应该在划分后对训练和测试数据集执行selectkbest?在第二个中,是否有可能为测试数据集选择不同的 k 特征而不是用于训练的特征?我对机器学习很陌生,最近刚刚了解了一些关于特征选择的知识。

我在这里使用单变量特征选择示例来了解 selectkbest - http://scikit-learn.org/stable/modules/feature_selection.html 为例

【问题讨论】:

    标签: machine-learning scikit-learn


    【解决方案1】:

    从技术上讲,您应该在训练集上拟合 selectKbest,然后使用拟合的选择器“转换”测试集。这是因为您不应该在训练过程的任何部分使用您的测试数据。

    想象一下在稍后阶段将模型应用于新数据。在这种情况下,您必须使用您在训练数据上训练的 selectKbest 模型“转换”这些数据。因此,这是更准确的性能估计的正确程序。

    如果您实施一些交叉验证方案,您应该对每个 CV 折叠重复此过程,以便获得关于分类器(或回归器)性能的正确估计。

    【讨论】:

      猜你喜欢
      • 2020-07-30
      • 2021-03-30
      • 2021-06-03
      • 2019-10-11
      • 2021-12-07
      • 1970-01-01
      • 2023-03-14
      • 2021-10-03
      • 2015-01-17
      相关资源
      最近更新 更多