数据预处理之特征选择

时间:2024-04-01 16:23:03

特征选择的意义

在对数据进行异常值、缺失值、数据转换等处理后,我们需要从当前数据集中选出有意义的特征,然后输入到算法模型中进行训练。

对数据集进行特征选择主要基于以下几方面的考虑:

1.冗余的特征会影响阻碍模型找寻数据潜在的规律,若冗余的特征过多,还会造成维度容灾,占用大量的时间空间,使算法运行效率大打折扣。

2.去除不相关的特征会降低学习任务的难度,保留关键的特征更能直观的看出数据潜在的规律。

那么,该如何进行特征选择呢?通常,要从两方面考虑来选择特征

1.特征是否具有发散性
如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。

2.特征与目标的相关性
如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。

根据特征选择的标准,又能分为filter、wrapper、embedded三种方法。

Filter方法

过滤法的主要思想是查看特征的发散性和特征与目标的相关性,通过设定阈值的方法,过滤发散性低、相关性不强的特征。

过滤法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,即先选好特征,再用过滤后的特征来训练模型。

具体来说,有:

1.方差法

使用方差法,要先计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。若特征的方差小于阈值,则代表该特征的发散性太弱。

2.Pearson系数

Pearson相关系数是用协方差除以两个变量的标准差得到的皮尔逊系数只能衡量线性相关性,先要计算各个特征对目标值的相关系数以及相关系数的P值,P值区间在[-1,1],p值越大,则与目标值越正/负相关,当p值为0时,则代表与目标值不相关。计算公式如下:

数据预处理之特征选择

数据预处理之特征选择

3.卡方检验

卡方检验只能用于二分类,经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,从而构建统计量。计算公式如下:

数据预处理之特征选择

由于此篇博文是从整体来谈特征选择,如对卡方检验不甚理解,请参考【笔记】卡方检验概述

4.互信息法

互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。

互信息系数能够很好地度量各种相关性,互信息法的计算公式如下:

数据预处理之特征选择

wrapper法

过滤法在选择特征时不考虑特征对学习器的效果,包裹式选择就很灵性了。包裹式通常根据预测效果评分来为学习器“量身定制”特征子集,相较于过滤法,能使学习器的性能更佳,缺点即是计算开销往往也更大。

比如LVW(Las Vegas Wrapper)特征选择方法,其思想是使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集的评价标准,算法描述如下:

数据预处理之特征选择

通过算法流程图可知,从特征集中随机抽取特征子集,如果在特征子集下分类器的误差降低或误差无变化,则更新特征集为特征子集

但也可以看出,由于每次循环都要计算分类器误差,计算开销很大,若特征众多,设置的循环次数较大,可能在很长的时间都给不出解

Embedded法

嵌入式特征选择方法也很灵性…嵌入式的特征选择方法将特征选择和学习器的训练过程融为一体,即学习器自动的进行了特征选择。

比如决策树的信息增益、信息增益比、基尼指数,求解最优解时的L1、L2正则化等思想,都能选取对学习器有价值的特征,过滤价值不大的特征。

参考

《机器学习》 —周志华

jacksu在简书——–特征选择

Joey-SH ———卡方检验概述