有时候特征太多了也是一个问题,容易过拟合。为了降低模型的复杂程度,降低过拟合的可能性,我们会减少需要的学习的特征。
特征选择法主要有三种,分别是过滤法,包裹法和嵌入法。
1.过滤法
这种方法主要是基于统计检验,根据特征之间的关系去掉具有线性相关的特征,还有根据特征和标签的关系,筛选关系大的特征。
这种方法的好处是具有通用性,不管什么算法都可以这么用。但是问题是这种方法没有考虑算法的特殊性,可能某些算法就是喜欢那些不起眼的特征,有这些特征,它的表现就更好。
简单介绍几种过滤法。
(1).方差阈值法
这种方法就是计算各个特征的方差,然后把方差过低的特征删除,为什么用这个办法?因为如果一个特征全都是一个数值,说明它对分类毫无意义,而这样的特征方差为0,当然这是一种极端情况,但是特征毫无波动,那它确实没什么用。sklearn提供了VarianceThreshold这个方法;
(2).假设检验法
这种一般是使用假设检验进行特征选择,消灭掉P值大于0.05的特征,这种教条主义的P值实际上经常帮倒忙,但是偶尔也会有不错的结果。
sklearn提供了卡方检验chi2,f检验r_regression等等,这些可以结合SelectFpr,SelectFdr,Sele