特征工程进阶:从原始数据到模型输入

特征工程(feature engineering)指根据数据与任务,构造、选择并变换特征,使模型更容易学到规律。在深度学习普及前,它往往是项目成败的关键;即便在今天,合理特征仍能让小模型超越笨重模型。

数值特征的处理

数值特征常需归一化与标准化:最小最大缩放到 [0,1] 适合边界已知的场景,Z-score 标准化(减均值除标准差)更适合梯度类模型以稳定训练。对长尾分布可先做对数或分箱(binning),把连续值切成有序区间,降低异常值冲击。分箱也能帮助线性模型捕捉非线性关系。

类别特征编码

类别变量不能直接进模型。低基数可用独热编码(one-hot),高基数则需目标编码(用目标均值平滑替代)、频率编码或哈希编码,避免维度爆炸。目标编码要配合交叉验证或加平滑项,防止对训练标签过拟合,这是实践中常见的泄露陷阱。

文本与缺失值

文本可用词袋、TF-IDF 或嵌入向量表征;现代做法多用预训练语言模型产出句向量。缺失值不能简单填零:可显式标记为「缺失」类别,或用模型(如 KNN、迭代式 imputation)按其他特征预测填补。scikit-learn 的文档系统列出了多种 imputer 与变换器的组合用法。

自动化特征工程

手工特征耗时且依赖经验。Featuretools 之类的工具用「深度特征合成」自动从多表关系中构造聚合特征;深度学习则倾向端到端,让模型自己学表示。但自动化不万能:领域知识构造的特征在可解释性与合规场景仍不可替代。

小结

特征工程把原始数据转化为模型友好的输入,常决定项目上限。核心包括数值归一化与分箱、类别编码(独热、目标编码)、文本表征与缺失值处理,并需注意目标编码的泄露风险。自动化工具能提效,但领域知识构造的特征在可解释场景仍关键。

参考与延伸阅读

本文累计阅读