有什么方法可以从数据中提取最佳特征。现在,我正在使用sklearn的“ KBest”。 在此,我必须指定需要选择的K个最佳功能的数量。 有什么我不需要指定要提取的特征数量的方法吗?而是我们提取了所有有用的功能?
from sklearn.feature_selection import SelectKBest
test = SelectKBest(score_func=chi2, k=4)
答案 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)
值得注意的是,您不能删除一个似乎无用的功能,因为它可能与其他功能有关。因此,功能选择是一个贪婪的搜索过程,通常很耗时。