当我们在训练模型时,其中一个很重要的部分是训练模型的参数,也就是模型中各个特征的值,不同的模型具有不同的特征组合,因此对于特征的选择也就对应了模型的选择。举个文本分类的例子,在文本分类的任务中,特征数量p远大于训练样本数n,而我们又知道特征里面有很大一部分是和类别无关的,因此我们就会想到用特征选择来把与类别相关的特征选出来。对于p个特征,会出现2p种特征的组合,也就对应了2p个模型,我们只要选择一种特征组合,也就选择了一个模型。
关于特征选择,下面介绍三种方法。
Filter类
这种方法计算每一个特征与类别的相关度,并获得一个得分。得分高的特征表明其与类别的关系越强。最后将所有特征按得分高低排序,选择得分高的特征。
Filter类的典型代表就是信息增益(或者信息增益率)。通过计算特征的信息增益,将信息增益较高的特征选出。具体的做法是,首先为每个特征计算信息增益,并将其作为特征的得分,然后选择得分较高的前k个特征作为选择的特征。关于k的值如何选择,可以采取交叉验证的方式。
从上面看出,Filter类的特征选择只需做简单的统计,计算复杂度低。但这种方法的问题是没有考虑特征之间的组合关系,有可能某一个特征的分类能力很差,但是它和某些其它特征组合起来会得到不错的效果。
Wrapper类
假如有p个特征,那么就会有2p种特征组合,每种组合对