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

本文探讨了模型选择中的特征选择问题,介绍了Filter方法(如信息增益)、Wrapper方法(如前向搜索、后向搜索)以及L1正则化的折中策略。Filter方法计算简单但忽视特征组合,Wrapper方法考虑组合但计算量大,L1正则化在两者之间提供平衡。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



