功能子集选择

时间:2018-04-23 11:26:21

标签: machine-learning feature-selection dimensionality-reduction

在减少数据集的维度之前,我们将学习算法应用于该集合,并且我们获得生成数据样本结果的目标函数。这可能是我们的分类器或回归器。

之后,我们应用特征选择或特征提取方法。我想知道的是子集选择算法,它是适应特征选择方法的算法:

根据我到目前为止所读到的资源,“你从一个空的特征集开始,在算法的每个步骤中,选择提高目标函数性能的功能并将其添加到你的功能集中。此操作继续直到添加新功能不会提高分类器或回归器的性能。“

如果添加新功能继续提高目标功能的性能怎么办?在这种情况下,我必须将所有功能添加到我的功能集中,这意味着我选择了所有功能。但是,我正在尝试减少数据样本的维度。

1 个答案:

答案 0 :(得分:0)

这取决于问题和您的数据集;但一般来说,使用您正在描述的特征选择策略(顺序前向选择),最终结果不太可能是保留所有变量。在大多数情况下,您要么找到局部最小值或无关变量。

然而,在极少数情况下会发生这种情况,这基本上会告诉您数据集中的所有功能都很重要 - 即删除任何会对您造成伤害模型的准确性。

如果上述问题不适合您,您可以修改目标函数(因此它会同时考虑当前精度和消除的特征百分比 - 可能作为加权目标)或更改您的特征选择启发式(您可以例如,使用顺序向后选择 - 这非常相似,但最初开始考虑所有功能,然后尝试逐个删除它们。)