【问题标题】:Python machine learning, feature selectionPython机器学习,特征选择
【发布时间】:2012-03-28 06:28:07
【问题描述】:

我正在从事与书面文本相关的分类任务,我想知道执行某种“特征选择”程序以改善分类结果有多重要。

我正在使用与该主题相关的许多功能(大约 40 个),但我不确定所有功能是否真的相关以及它们的组合。我正在使用 SVM (scikits) 和 LDAC (mlpy)。

如果一个混合了相关和不相关的特征,我认为我会得到很差的分类结果。我应该在分类之前执行“特征选择程序”吗?

Scikits 有 an RFE procedure that is tree-based that is able to rank the features。使用基于树的 RFE 对特征进行排序以选择最重要的特征并使用 SVM(非线性)或 LDAC 执行实际分类是否有意义?或者我应该使用相同的分类器来实现某种包装器方法来对特征进行排名(尝试用不同的特征组进行分类会非常耗时)?

【问题讨论】:

  • 研究使用进化算法通过选择来改善您的结果。
  • 嗯,你当然可以尝试做特征选择;这是它的预期用例。但是,如果没有您的问题的更多详细信息,这很难回答。您也可以手动尝试不同的功能集。

标签: python scikits scikit-learn


【解决方案1】:

试试看它是否提高了使用cross validation 衡量的分类分数。同样在尝试 RFE 之前,我会尝试 CPU 密集度较低的方案,例如 univariate chi2 feature selection

【讨论】:

    【解决方案2】:

    拥有 40 个功能还不错。一些机器学习受到不相关特征的阻碍,但很多东西对它们来说是相当健壮的(例如朴素贝叶斯、SVM、决策树)。除非您决定添加更多功能,否则您可能不需要进行功能选择。

    扔掉无用的功能不是一个坏主意,但除非你有特别的动机,否则不要浪费你自己的精神时间去尝试。

    【讨论】: