资讯

特征选择是什么?从众多变量中挑出真正有用的特征

2026-11-053 分钟阅读百科
TL;DR特征选择(Feature Selection)是从原始特征中挑选出与预测目标最相关的子集、去除无关和冗余特征的过程,可以提升模型效果、减少过拟合、加快训练并提高可解释性,主要方法分为过滤法、包裹法和嵌入法三类。

特征选择(Feature Selection)是从一组原始特征中,挑选出对预测目标最有用的那部分特征的过程。它会去掉那些与目标无关的特征,以及彼此重复、提供相同信息的冗余特征,只保留一个精简而有效的特征子集,用来训练机器学习模型。

为什么要做特征选择

在实际问题中,可用的特征往往很多:一个用户可能有几百个属性,一份基因数据可能有上万个基因的表达量。但并不是所有的特征都有用,直接把所有特征都交给模型,可能带来不少问题。

提升模型效果:无关的特征相当于噪声,会干扰模型的学习。减少过拟合:特征越多,模型越复杂,越容易记住训练数据中的偶然规律,尤其是在样本数量不多的时候。这和“维度灾难”有关:特征的维度越高,数据在高维空间中就越稀疏,模型需要的数据量会急剧增加。加快训练和预测的速度,降低存储和计算的成本。提高可解释性:只用少数几个关键的特征,人们更容易理解模型是根据什么做出判断的,这在医疗、金融等需要解释决策的领域尤其重要。降低数据收集的成本:如果发现某些特征不需要,以后就不必再花费成本去收集它们。

三类主要方法

过滤法:在训练模型之前,根据特征自身的统计性质,或者特征与目标之间的相关程度,对每个特征打分,挑选出得分高的特征。常用的指标有相关系数、卡方检验、互信息、方差等,比如方差接近于零的特征几乎没有变化,提供不了什么信息,可以直接去掉。这类方法速度快、与具体的模型无关,但它通常是单独地评估每个特征,可能忽略特征之间的组合效应。

包裹法:把特征选择看作一个搜索问题,用实际的模型效果作为评价标准,尝试不同的特征组合,选出让模型表现最好的那一组。比如递归特征消除:先用全部特征训练模型,去掉最不重要的特征,再用剩下的特征重新训练,如此反复。还有逐步向前添加特征、逐步向后删除特征等方法。这类方法考虑了特征之间的相互作用,效果通常更好,但计算量很大。

嵌入法:在模型训练的过程中,同时完成特征选择。比如 L1 正则化(Lasso 回归)会把不重要特征的系数压缩为零,相当于自动地去掉了这些特征;决策树、随机森林和梯度提升树等模型,在训练后能给出每个特征的重要性,可以据此进行筛选。这类方法在效果和效率之间取得了较好的平衡,在实践中很常用。

与降维的区别

特征选择和降维都能减少特征的数量,但方式不同:特征选择是从原有的特征中挑出一部分,保留下来的仍然是原始的特征,含义清楚;降维,比如主成分分析(PCA),是把原有的特征组合、变换成一组新的特征,数量更少,但新特征的含义往往不太直观。在深度学习中,神经网络能够自动地学习和筛选特征,对人工特征选择的依赖较少,但在表格数据的建模中,特征选择仍然是一个重要的环节。