【问题标题】:What to do first: Feature Selection or Model Parameters Setting?首先要做什么:特征选择还是模型参数设置?
【发布时间】:2012-09-09 20:31:39
【问题描述】:

这更像是一个“理论”问题。我正在使用 scikit-learn 包来执行一些 NLP 任务。 Sklearn 提供了许多方法来执行特征选择和模型参数的设置。我想知道我应该先做什么。

如果我使用univariate feature selection,很明显我应该先进行特征选择,然后使用选择的特征调整估计器的参数。

但是如果我想使用recursive feature elimination 怎么办?我是否应该先使用所有原始功能使用grid search 设置参数,然后再执行功能选择?或者我应该先选择特征(使用估计器的默认参数),然后使用所选特征设置参数?

提前感谢您能给我的任何帮助。

编辑

我遇到了与here 几乎相同的问题。到那时,还没有解决办法。有谁知道现在有没有?

【问题讨论】:

    标签: python machine-learning scikit-learn feature-selection


    【解决方案1】:

    我个人认为 RFE 在大多数情况下过于矫枉过正且过于昂贵。如果您想在线性模型上进行特征选择,请使用单变量特征选择,例如使用 chi2 测试或 L1 或 L1 + L2 正则化模型和网格搜索正则化参数(在 sklearn 模型中通常命名为 Calpha)。

    对于具有大量样本的高度非线性问题,您应该尝试RandomForestClassifierExtraTreesClassifier 或 GBRT 模型和网格搜索参数选择(可能使用 OOB 分数估计)并使用 compute_importances 开关来查找排名按重要性划分特征并将其用于特征选择。

    对于样本很少的高度非线性问题,我认为没有解决方案。你一定是在做神经科学:)

    【讨论】:

    • 感谢您的建议。由于我只是打算使用 LogistRegression 和 SVC,我认为 chi2 和/或 L1 就足够了。
    猜你喜欢
    • 2020-10-29
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2016-07-03
    • 2018-04-04
    • 2012-04-15
    • 2022-06-21
    相关资源
    最近更新 更多