选择ML的最佳功能

时间:2019-12-02 05:20:44

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

来自docs

  

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

     

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

答案 1 :(得分:0)

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

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

您还可以使用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)

值得注意的是,您不能删除一个似乎无用的功能,因为它可能与其他功能有关。因此,功能选择是一个贪婪的搜索过程,通常很耗时。