在大数据分析数据处理过程中,关键特征该如何筛选?
2023-04-11 18:39:42
次
1.为什么要做关键特征筛选?
在数据量与日俱增的时代,我们收集到的数据越来越多,能运用到数据分析挖掘的数据也逐渐丰富起来,但同时,我们也面临着如何从庞大的数据中筛选出与我们业务息息相关的数据。(大背景)从数据中挖掘潜在的规律,辅助我们在实际业务中进行决策。
在现实任务中经常会遇到维数灾难问题,属性过多造成的。可以降低学习任务的难度,不相关的特征就是噪声。它有助于减少数据集的大小和复杂性,反过来使我们可以用更少的时间来训练模型,更少的计算成本来训练机器学习模型和进行推理;具有较少特征的简单机器学习模型更容易理解和解释;它可以避免过拟合。因为特征越多,模型就越复杂,这就带来了维数的麻烦 (错误会随着特征数量的增加而增加) 。
特征选择目的:1)减少特征数量、降维,使模型泛化能力更强,加速模型训练,减少过拟合;2)增强对特征和特征值之间的理解。
2.做关键特征筛选的常见问题有哪些?
问题在于,1)在面对未知领域的时候,很难有足够的知识去判断特征与我们的目标是不是相关,特征与特征之间是不是相关。这时候,就需要一些数学和工程上的办法来帮助我们尽可能地把恰好需要的特征选择出来。2)特征与特征之间往往不是独立的,因此特征选择往往把要选择的特征当作一个子集进行搜索(单独特征最优组合)。3)样本与样本之间往往存在特征分布的重叠。(基于类内类间的特征选择方法不能反映样本分布重叠的情况)。
3.做数据筛选的3类方法
选择哪种特征选择方法?为自己打造一个投票选择器
实现我们讨论过的几种特征选择方法。您的选择可能取决于时间、计算资源和数据度量级别等因素。只要运行尽可能多的不同方法就可以了。然后,对于每个特征,记下建议将此特征保留在数据集中的选择方法的百分比。如果超过50%的方法投票赞成保留,则保留它该特征,否则,请丢弃它。
这种方法背后的思想是,虽然一些方法可能由于其内在的偏见而对某些特征做出错误的判断,但多种方法的集合应该可以正确地获得有用的特征集。
1)统计方法
►定义:其最大优势是不依赖于模型,仅从特征的角度来挖掘其价值高低,从而实现特征排序及选择。由于它们与模型无关,因此它们也更通用;它们不会对任何特定的算法进行过度匹配。它们也很容易解释:如果一个特征与目标没有统计关系,它就会被丢弃。其核心在于对特征进行排序——按照特征价值高低排序后,即可实现任意比例/数量的特征选择或剔除。
缺点是,他们分别单独查看每个特征,评估其与目标的关系。这使得他们很容易放弃一些有用的特征,而这些特征本身是目标的弱预测因子,但与其他特征结合后会为模型增加很多价值。
►包含:方差选择、方差分析、相关系数
►适用场景:/
►优势/各种方法之间的对比或差异:
方差选择,计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。优点:计算量较小,只需计算所有特征的方差即可;可作为第一次特征选择对特征进行过滤,降低后续算法的计算成本。缺点:比较依赖阈值的选取,如果阈值选取过高,会筛选掉许多有用特征;阈值过低,又会留下较多无用数据;一些作用较大的数据可能因为数据不平衡等问题出现方差较小的情况,而这些特征容易被方差过滤法给误删了;只能用于离散型数据,对于连续型数据,应先划分区间,将连续性化成离散型,再进行方差过滤。
►适用场景:由于方差过滤法的缺点较大,所以往往是先采用方差过滤法将一些变化极小或为无变化的特征先行筛选掉,减少一部分数据,然后再采用模型方法进行二次筛选。
方差分析,是一种假设检验的方法,它是分析目标在于检验各组的均值间差异是否在统计意义上显著。优点:(1)它不受统计组数的限制,可接受大样本统计数量进行多重比较,能够充分地利用试验所提供数据来估计试验误差,可以将各因素对试验指标的影响从试验误差中分离开,是一种定量分析方法,可比性强,分析精度高;(2)方差分析可以考察多个因素的交互作用。缺点:(1)涉及到全部数据,计算复杂;(2)前提条件较为苛刻,需要数据样本之间相互独立,且满足正态分布和方差齐性,所以需要对数据进行方差齐性检验。
相关系数:其主要思想是通过计算各个特征之间的相关系数,筛选出与目标变量相关性最高的特征。优点是,最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性。速度快、易于计算,经常在拿到数据(经过清洗和特征提取之后的)之后第一时间就执行。缺陷是,它假设两个变量都是正态分布的,并且只测量它们之间的线性相关性。当相关性为非线性时,皮尔逊r将无法检测到它,即使它真的很强。
效果:简单描述操作+最终效果图
方差选择
输出大于阈值的字段名为重要特征。
方差分析
相关系数
2)模型方法
►定义: 它使用一个模型对不同的特征子集进行评分,最终选择最佳的特征。每个新子集用于训练一个模型,该模型的性能随后在保持集上进行评估。选择产生最佳模型性能的特征子集。
►包含:逻辑回归分类、随机森林分类、梯度提升决策树分类、ReliefF、RFE
►适用场景:如果我们并不了解业务,或者有成千上万的特征,那我们也可以使用算法来帮助我们。或者,可以让算法先帮助我们筛选过一遍特征,然后在少量的特征中,我们再根据业务常识来选择更少量的特征。
►优势/各种方法之间的对比或差异:
逻辑回归分类、随机森林、RFE等,可以帮助我们识别哪些变量对于分类预测最有用。这可以提高模型的准确性。将特征选择看做是一个黑盒问题:即仅需指定目标函数(这个目标函数一般就是特定模型下的评估指标),通过一定方法实现这个目标函数最大化,而不关心其内部实现的问题。进一步地,从具体实现的角度来看,给定一个含有N个特征的特征选择问题,可将其抽象为从中选择最优的K个特征子集从而实现目标函数取值最优。
优点是,为特定类型的模型提供性能最佳的特征集。缺点是,可能会过度适用于模型类型,如果希望使用不同的机器学习模型尝试它们,则它们生成的特征子集可能不会泛化。计算量大。他们需要训练大量的模型,这可能需要一些时间和计算能力。
►效果:简单描述操作+最终效果图
逻辑回归
随机森林
梯度提升决策树
ReliefF
RFE
仅展示重要特征。
3)集成方法
►定义:python分析重要性的几个工具。
►包含:Shap、Permutation Importance、Boruta、Partial Dependence Plots
►适用场景:/
►优势/各种方法之间的对比或差异:
Shap做特征筛选,能够提高性能,但缺点是时间成本高。参数组合越多,或者选择过程越准确,持续时间越长。这是我们实际上无法克服的物理限制。
Permutation Importance适用于表格型数据,其对于特征重要性的评判取决于该特征被随机重排后,模型表现评分的下降程度。优点是,计算速度快;应用广泛、易于理解;与我们期望一个特征重要性度量所具有的性质一致。
Boruta是一种简单但统计上很优雅的算法。它使用来自随机森林模型的特征重要性度量来选择特征的最佳子集,并通过引入两个极好的思路来实现。Boruta对特征进行了精确的分类,而不是排序,这与许多其他特征选择方法形成了鲜明对比。
Partial Dependence Plots跟排列重要性一样,部分依赖图也是要在拟合出模型之后才能进行计算。
►效果:简单描述操作+最终效果图
Permutation Importance
Boruta
Shap
Partial Dependence Plots
波动大说明特征越重要。