作者:卢菁
编辑:刘世冲

特征分布
摘要:本文主要介绍了特征选择的主要目标,以及在实际项目中常见的特征选择方式。在现实项目中面对复杂的业务场景我们可以使用组合特征进行分析。
特征选择是一个重要的数据预处理过程,在传统机器学习中显得尤为重要,好的特征模型能够极大地降低任务的难度,尽管在深度学习时代,模型足够强大到可以自动提取有效特征,但是一个不错的特征选择方案,仍然可以加快模型的收敛以及提升模型的泛化能力。
特征选择的主要目标有如下几个主要几个:
尽可能找到和任务(分类或者回归)最为相关的特征作为模型的输入(例如,预测学生能否考上大学,学习成绩为最重要的特征,而身高体重就是无关特征)。尽可能去除冗余特征(例如,年收入和月薪),降低模型复杂度。去除噪音特征,防止模型被噪声带偏,提高模型的泛化能力。在实际的项目中,常见的特征选择方式:
去除方差较小的特征。例如,某个特征在所有样本上都一样,那么这个特征对分类没有任何帮助。比如,我们预测一个学生是否能够考上大学,那么年龄这个特征就没有用,因为大部分高中生都为18,19岁,方差这个维度几乎为0,没有任何信息量。正则化。通过正则化的操作,可以降低各个特征对应的权重系数w。如果某一个特征不重要,那么将会很快得趋近于0。特别的,L1正则倾向于直接将不重要的特征系数w直接置为0,而L2正则相对平和,会对所有特征都进行降低。当模型训练的时候配合正则化策略,可以直接忽略较小权重所对应的特征。不过需要注意的是,如果进行特征选择,最好是使用L1特征。例如,在预测相亲是否成功的场景中,年薪和月薪是两个完全互相冗余的特征,这个特征对应的权重为w。如果使用L2正则,那么这两个特征将会各自承担0.5w的权重,这样这个特征的重要度就会被稀释掉,并且相互冗余的特征越多稀释得越严重,最后会让这个特征毫无重要度可言,会被全部去掉。但是使用L1正则时,会直接对其中一个特征的权重置为w(保留),而其他冗余特征直接为0(被去除)。随机森林。对于分类问题,通常采用基尼不纯度或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。一般不需要feature engineering、调参等繁琐的步骤。它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。统计特征之间的相关性。可以统计特征之间的相关性,如果两个特征相关性很高,那么他们之间就存在冗余,可以去除其中的某一个。统计特征和目标之间的相关性。如果一个特征X和目标y的相关性很高,那么就说明该特征对分类有非常大的帮助可以给予保留,反之亦然。上面说了一些常用的特征选择方法,但实际情况却是一个非常复杂的场景。例如,在搜索,推荐,广告领域这种匹配场景,大量的特征单独看作用无法决定结果,但是组合起来却能起到重要的效果。这时候按上述方法把特征独立进行分析,就会失效,这时候可以对组合特征进行组合,来看下组合特征的权重。
卢菁老师