特征选择的最佳方法

时间:2019-02-20 10:32:59

标签: machine-learning data-science

我有六个以上的不同表,具有300多个功能(属性)。现在,我对为模型构建选择特征的正确方法有些困惑。我考虑两个过程

  1. 一个接一个地选择属性,并计算该属性对于输出的重要性,并将其添加到数据集市中。
  2. 从所有表格中获取所有特征,并计算它们的相关性和重要性,并删除次要特征。

3 个答案:

答案 0 :(得分:2)

您可以使用从一个功能开始的正向功能选择,仅使用300个功能之一训练模型,然后执行300次,因此您已经分别对每个功能进行了训练,然后选择提供模型的功能最高的精度,现在保留其中一个,并开始使用所选功能训练模型,而其余299个中的另一个训练,因此您训练299模型具有2个功能,现在在299个模型中添加一个,可以为您提供最高的精度选择一个。现在您有2个功能。您可以像这样继续选择所需的 k 最佳功能,例如100个。请注意,这种方法无法为您提供最佳的功能集,例如,两个功能可能会很好地协同工作,但是它们都不会对决策边界产生重大影响,因此都不会选择它们。方法。还有一个向后的功能选择,您将同时开始选择所有功能,全部300个,然后根据删除这些功能所得到的错误,一一删除不那么重要的功能。

我的建议是改用特征提取方法。使用scikit-learn中的PCA。它就像导入并调用它一样简单!!完成。但是请确保在使用PCA之前将数据标准化,您可以使用StandardScalar

答案 1 :(得分:2)

300个功能对于您的模型构建过程来说太多了。

您可以使用xgboost和random forest之类的算法,因为它们具有以下功能: 查找功能的重要性。

您可以根据特征的重要性对特征进行排序,并删除重要性不高的特征,这将使模型的复杂性降低。

答案 2 :(得分:1)

您可能要考虑的另一个建模选项是lasso-regularized regression。在这种方法中,某些特征的系数缩小为零,这实际上是在建模过程中进行变量选择的效果。可以将它用于连续或离散的二进制目标变量,在特征数量接近,等于或大于观测数量的情况下特别有用。