Python 我应该使用一个热编码的特征选择吗?

Python 我应该使用一个热编码的特征选择吗?,python,scikit-learn,feature-selection,one-hot-encoding,Python,Scikit Learn,Feature Selection,One Hot Encoding,我有一个两难的选择,我正在使用一个热编码,我需要做特征选择(对于分类和数字特征),我有一些并不重要的特征,但我不想使用一些算法来做,而不是手动。我的问题有两个方面- 我可以使用什么特征选择技术来完成它 我是在一次热编码之后还是之前做的 如果您有许多功能,并且其中许多功能可能与模型无关,则功能选择将允许您放弃这些功能,并将数据集限制为最相关的功能 在这些情况下,贝娄是一个需要考虑的几个重要方面: 维度诅咒 在处理大型数据集时,这通常是非常关键的一步。例如,盲目地对所有分类特征进行热编码,可能

我有一个两难的选择,我正在使用一个热编码,我需要做特征选择(对于分类和数字特征),我有一些并不重要的特征,但我不想使用一些算法来做,而不是手动。我的问题有两个方面-

  • 我可以使用什么特征选择技术来完成它
  • 我是在一次热编码之后还是之前做的

如果您有许多功能,并且其中许多功能可能与模型无关,则功能选择将允许您放弃这些功能,并将数据集限制为最相关的功能

在这些情况下,贝娄是一个需要考虑的几个重要方面:

  • 维度诅咒
在处理大型数据集时,这通常是非常关键的一步。例如,盲目地对所有分类特征进行热编码,可能会导致大量数据帧,这些数据帧甚至可能无法存储到内存中,更不用说用于ML模型了。在这种情况下,您可能需要减少编码功能的数量,或者查看其他分类编码器,如贝叶斯编码器(请参阅anwer的最后一节)

  • 特征重要性
很有说服力地说,不进行特征选择的一个消极方面可能是,我们有许多高度相关的特征,在分析特征重要性时,这些特征的重要性可能并不表明它们的实际相关性

回答问题的第二部分,如果您拥有的特征可能是相关的,并且您已经做了一些特征工程,那么您可以对它们进行编码,如果您最终拥有许多特征,那么您可以执行特征选择并减少结果数据集的维数。有许多特征选择技术。您可以在scikit学习中找到可用的列表


根据一些评论

  • 我应该用贴标机吗
首先,由于您在评论中提到使用LabelEncoder,请记住此编码器仅用于标签,不用于功能!看

  • 我应该如何处理高基数特性
对于分类特征,如果它们具有很高的基数,则最好研究贝叶斯编码器。见这一相关问题: