写在前面:由于笔者的实习工作需求,需要对特征选择的方法进行探索,故搜索整理了市面上现存的主要方法,以供可能存在的读者参考。如对屏幕前的你有所帮助,我将为这项工作有意义而感到开心👍🏻
🌟一个有必要关注的问题
特征选择的方法根据应用需求分为2种:1. 单独计算每一个特征对于目标变量的影响;2. 同时考虑所有特征对于目标变量的影响
因为各有利弊,故在以下给出二者的优缺点,以综合进行考虑:
1 单独计算每个特征对目标变量的重要性
❗️优点:
●计算简单,容易理解和解释。操作直观,比如可以很容易地计算特征与目标之间的相关性或者使用单变量统计测试,如t检验或者卡方检验等。
●计算速度快,适合于维度较高的数据。可以独立地处理每个特征,从而可以有效地并行化计算。
❗️缺点:
●🌟单独分析可能会忽视特征之间的相互影响。比如说,两个单独的特征可能对目标的影响不大,但是它们组合在一起时可能对目标有很大的影响。
●可能对一些类型的数据不太有效。比如,对于类别标签的特征,连续数值的相关性测试可能不会有很好的效果。
2 同时计算所有特征对目标变量的重要性
❗️优点:
●能够考虑到特征之间的相互作用。可以将多个特征的组合效果一同考虑进来,这可能会帮助发现某些单独特征看不出的效果。
●在处理复杂模型(如深度学习模型)时,可能会更有用,因为这些模型会考虑各个特征之间的各种组合和交互。
❗️缺点:
●计算复杂性增加,需要的算力和时间也随之增加。
●🌟结果解释起来可能更加困难。当你只考虑一个特征的时候,你可以很清楚地看到这个特征对目标的影响。但是如果你正在考虑多个特征,那么就很难说清楚是哪个特征起了主要作用。
●这种方法也有可能导致过拟合。如果考虑了大量特征组合,可能会找到一些在训练数据上效果很好,但在测试数据上表现不佳的复杂模式。
引言
众所周知,特征选择主要有两个功能:
1.减少特征数量、降维,使模型泛化能力更强,减少过拟合
2.增强对特征和特征值之间的理解
最重要的是对特征和数据理解,即不仅仅是找一个特征选择方法就开始算,应当注意其原理是否与所求相契合。
注:本文中使用“重要性分数”这个词对于“影响程度”、“重要性大小”等词语所表述的意思进行统一。
1 单变量特征选择(只算单个特征对于目标变量的重要性分数)
1.1 卡方检验
1.1.1 原理简述
如果一个特征与目标变量是独立的,那么这个特征的不同取值不应该对目标变量的分布产生影响,反之,如果一个特征的不同取值对目标变量的分布产生了显著影响,那么我们就可以认为这个特征对目标变量具有重要的影响。
在卡方检验中,我们设立的零假设通常是特征与目标变量是独立的,即特征的不同取值不会对目标变量产生影响。而我们根据实际数据计算出的卡方统计量,其实是观察值与期望值之间的偏离程度。卡方统计量越大,观察值与期望值偏离越大,即特征与目标变量的相关性越强,拒绝零假设的依据也越充足。
该方法的本质是通过观察特征与目标变量的实际关联程度(实际观察值)与假设它们独立时的期望关联程度(期望值)之间的偏离程度,以此判定特征和目标变量是否存在显著关联,进而确定该特征对于目标变量的重要性。
♦️PS:利用卡方检验评估特征重要性,主要关注卡方统计量值和对应的p值。卡方统计量的值越大,说明特征取值和目标变量的实际观察频率与假设它们独立时的期望频率偏差越大,也就表明特征和目标变量的相关性越强,所以我们可以认为这个特征的重要性越高。p值是用来判断这个相关性是否具有统计学意义的重要参数。如果p值小于某个显著性水平(通常设为0.05或0.01),我们就认为特征和目标变量之间存在显著的相关性,也就是说,这个特征对于目标变量的重要性较高。
所以,卡方统计量可以反映特征的重要性程度,而p值可以用来判断这个重要性是否具有统计学意义。因此也许可以对这两个值做一个加权处理,从而得到重要性分数。
1.1.2 优点
1.易理解和实现:卡方检验的理论和公式相对直观与简单,易于理解。而且在大部分统计和数据分析软件中都有对应的实现,方便使用。可用于大规模数据:卡方检验的计算效率较高,适合处理大规模的数据集。
2.适应性广:卡方检验不受数据分布的影响,适用于各种类型的数据。
1.1.3 缺点
1.🌟只适合分类变量:卡方检验只能用于处理l离散变量。对于连续变量,需要先进行离散化处理,而这样可能会丢失一些信息。
2.🌟忽视了特征之间的交互:卡方检验主要关注单个特征与目标变量之间的关系,忽视了特征之间可能存在的交互效应。
3.对于稀疏的观察,结果可能不准确:如在列联表中,如果存在期望频数太小(例如小于5)的格子,卡方检验的结果可能就不太准确。
1.1.4 实现步骤
1.构造列联表:首先,针对单个特征与目标变量,我们需要构建一个列联表(Contingency Table)也叫交叉表。表中