特征工程的核心目标是通过数据预处理、特征构造和优化,提升模型的性能、可解释性和泛化能力。
一、特性工程需要关注的核心问题
-
数据质量与清洗
- 缺失值处理:填充(均值、中位数)、删除或标记缺失。
- 异常值检测:通过分位数、标准差或业务规则识别异常值。
- 数据分布:检查偏态、峰态,必要时进行对数变换或归一化。
-
特征有效性
- 业务可解释性:特征是否符合业务逻辑(如“信息熵”需解释为“多样性指标”)。
- 相关性分析:特征与目标变量的关联强度(如皮尔逊系数、IV值)。
- 时效性:动态特征(如“近1个月查询次数”)是否与当前业务场景匹配。
-
特征工程方法
- 特征转换:
- 分类变量编码(哑变量、目标编码)。
- 连续变量分箱(如将“年龄”分为青年、中年、老年)。
- 特征构建:
- 组合特征(如“收入/负债”构建“负债率”)。
- 时序特征(如“过去3个月平均消费”)。
- 降维:PCA、LDA或业务驱动的特征筛选。
- 特征转换:
二、深度学习是否需要特征工程?
误区纠正:深度学习并非完全不需要特征工程,而是减少了对人工设计高阶特征的依赖。具体需分场景:
-
非结构化数据(图像、文本、音频):
- 特征工程被嵌入模型结构(如CNN自动提取图像边缘、纹理)。
- 但仍需基础处理:图像归一化、文本分词、音频降噪。
-
结构化数据(表格数据):
- 必须进行特征工程:
- 处理缺失值、异常值、标准化。
- 分类变量编码(One-Hot、Embedding)。
- 构造时序、统计特征(如滚动均值)。
- 示例:在金融风控中,即使使用深度学习,仍需人工构建“近1个月查询次数”“负债收入比”等业务指标。
- 必须进行特征工程:
-
领域适配性:
- 在数据量小或业务强解释性场景(如金融、医疗),特征工程直接影响模型效果。
- 在数据量大且弱解释性场景(如推荐系统),模型可自动学习特征交互。
三、共线性是否需要关注?
共线性(多重共线性)指特征之间高度相关,可能导致模型参数不稳定或解释性下降。其处理方法包括:
- 删除高相关特征:通过相关性矩阵或VIF(方差膨胀因子)选择保留关键特征。
- 特征组合:将相关特征合并为复合特征(如“总收入=工资+投资收入”)。
- 降维技术:使用PCA提取主成分,消除原始特征间的相关性。
这些方法均属于特征选择或特征转换的范畴,是特征工程的关键环节。
- 线性模型(如线性回归、逻辑回归):必须处理共线性(VIF > 5),否则参数估计不可靠。
- 树模型(如随机森林、XGBoost):对共线性不敏感,但冗余特征可能稀释特征重要性,此时共线性处理仍属于特征工程中的优化步骤。
- 深度学习:
- 神经网络对共线性有一定容忍度,但极端共线性可能导致训练不稳定(梯度震荡)。神经网络可通过权重调整抵消共线性影响,但若需解释特征贡献(如SHAP值),仍需在特征工程阶段处理共线性。
实例说明:
- 金融风控:若“年收入”与“月消费”高度相关(相关系数>0.9),需删除其中一个或构造“消费收入比”,属于特征工程。
- 图像分类:对RGB图像的三个通道进行PCA降维以减少冗余,属于特征工程中的降维处理。
- 自然语言处理:对TF-IDF矩阵进行SVD分解以消除词向量共线性,属于特征工程。