【问题标题】:Selecting Best features for ML为 ML 选择最佳特征
【发布时间】:2019-12-02 05:20:44
【问题描述】:

有什么方法可以从数据中提取最佳特征。现在,我正在使用 sklearn 中的“KBest”。 在此,我必须指定需要选择的 K 个最佳特征的数量。 有什么方法可以让我不必指定要提取的特征数量?而是我们提取所有有用的特征?

from sklearn.feature_selection import SelectKBest
test = SelectKBest(score_func=chi2, k=4)

【问题讨论】:

    标签: python machine-learning recurrent-neural-network


    【解决方案1】:

    您可以使用"all" 代替数字

    test = SelectKBest(score_func=chi2, k="all")
    

    来自docs

    k : int 或“all”,可选,默认=10

    要选择的主要功能数量。 “all”选项绕过选择,用于参数 搜索。

    【讨论】:

      【解决方案2】:

      选择功能的多种方式。在wiki,你可以找到它们。而且我认为最好的特征选择方法是你对这些特征有深刻的理解。但通常我们很难理解它们。

      也许你可以使用 5-Kfold 交叉验证来进行特征重要性排名,然后他们从中选择重要特征。

      你也可以使用Embedded方法来选择它,像这样:

      from sklearn.feature_selection import SelectFromModel
      from sklearn.ensemble import GradientBoostingClassifier
      
      #Feature selection of GBDT as base model
      SelectFromModel(GradientBoostingClassifier()).fit_transform(iris.data, iris.target)
      

      值得注意的是,你不能单独删除一个看似无用的特征,因为它可能与其他特征有关。所以特征选择是一个贪婪的搜索过程,通常很耗时。

      【讨论】:

        猜你喜欢
        • 2021-07-26
        • 2017-03-18
        • 2012-04-20
        • 2017-06-03
        • 2012-12-16
        • 2014-09-16
        • 2021-10-07
        • 2012-05-09
        • 1970-01-01
        相关资源
        最近更新 更多