【问题标题】:How can sklearn select categorical features based on feature selectionsklearn如何根据特征选择选择分类特征
【发布时间】:2014-09-21 03:07:46
【问题描述】:

我的问题是我想对具有多个分类变量的数据进行特征选择。我在pandas 中使用了get_dummies 来为这些分类变量生成所有稀疏矩阵。我的问题是 sklearn 如何知道一个特定的稀疏矩阵实际上属于一个特征并选择/删除它们?例如,我有一个名为 city 的变量。该变量有纽约、芝加哥和波士顿三个水平,因此稀疏矩阵如下所示:

[1,0,0] [0,1,0] [0,0,1] 如何告知 sklearn 在这三个“列”中实际上属于一个特征,即城市,不会最终选择纽约,并删除芝加哥和波士顿?

非常感谢!

【问题讨论】:

    标签: python scikit-learn feature-selection


    【解决方案1】:

    你不能。 scikit-learn 中的特征选择例程将彼此独立地考虑虚拟变量。这意味着他们可以将分类变量的域“修剪”到对预测很重要的值。

    【讨论】:

    • 我明白了,但这太糟糕了,这使得它不像 R 那样灵活:(
    • 然后使用R或者自己写特征选择器,最简单的想法是选择一整组one-hot编码特征,如果其中一个被选中(问题可能会变得难以控制所选特征的确切数量,如果你的类有非常不同数量的元素,它可能会变得很奇怪)。或者,正如@larsmans 指出的那样,如果您只关心预测分数并且您的下一个处理步骤也适用于单热编码,那么只需使用特征选择器的功能。
    猜你喜欢
    • 2017-04-06
    • 2017-04-26
    • 2023-04-07
    • 2019-01-12
    • 2014-02-27
    • 2021-10-20
    • 2013-02-21
    相关资源
    最近更新 更多