特征选择需组合使用多种方法:先用统计检验(如F检验、卡方检验)粗筛,再用Lasso或树模型重要性筛选主力特征,最后用RFE或Permutation Importance验证稳定性。

特征选择不是挑几个看着顺眼的变量,而是帮模型聚焦真正影响目标值的关键信息。选得准,模型更稳、更快、泛化更好;选得乱,噪声进来了,效果反而下降。
基于统计检验的筛选(适合线性假设场景)
当目标变量和特征之间大致呈线性关系时,可以用相关系数、F检验、卡方检验等快速初筛。比如用 sklearn.feature_selection.f_regression 计算每个数值特征与连续目标变量的F统计量和p值,保留p值小于0.05的特征。分类目标可用 chi2 或 f_classif。注意:这类方法只衡量单变量与目标的关系,忽略特征间交互,适合前期粗筛,不建议直接作为最终特征集。
基于模型重要性的排序(树模型天然友好)
训练一个随机森林或XGBoost回归器后,调用 feature_importances_ 属性,就能拿到每个特征对预测的“贡献度”。可设定阈值(如平均重要性以上),或保留前N个。优点是能捕捉非线性与组合效应;缺点是重要性易受特征尺度、重复采样影响。建议配合Permutation Importance做二次验证——打乱某一列特征后看模型性能下降多少,更鲁棒。
基于嵌入式方法的自动筛选(L1正则最常用)
Lasso(LassoCV)通过L1正则强制部分系数为0,天然实现特征选择。训练完直接看哪些系数非零,就是被选中的特征。适合高维稀疏场景,但要求特征已标准化(用 StandardScaler)。类似地,LinearSVR 加 L1 惩罚、或树模型中的 select_from_model 也能嵌入筛选逻辑。关键点:交叉验证选alpha,避免过拟合导致误删重要特征。
标签: python
还木有评论哦,快来抢沙发吧~