核心要点

  • 清洗与变换:缺失值填充、异常值处理、对偏态特征做 log/Box-Cox 变换。

  • 类别编码:独热编码、序数编码、目标编码(注意防泄漏),高基数可用嵌入或频次编码。

  • 数值缩放:标准化(零均值单位方差)或归一化,对距离/梯度类模型尤为关键。

  • 构造与选择:交叉/分箱/聚合派生新特征;用过滤、包裹、嵌入法或 PCA 选择/降维。

标准回答

为什么重要

模型只能从喂给它的特征中学习,「垃圾进垃圾出」。好的特征能让简单模型也表现优异,往往比盲目更换复杂模型收益更大,尤其在表格数据上。

常用方法

数据清洗:处理缺失(均值/中位数/模型填充)、异常值,统一量纲与格式。特征变换:对偏态分布取对数、Box-Cox,使其更接近正态。类别编码:低基数用独热,有序用序数编码,高基数用目标编码或嵌入(目标编码须折外计算防泄漏)。数值缩放:标准化或归一化,使依赖距离(KNNSVM)或梯度(线性/神经网络)的模型收敛更好、不被大量纲特征主导。特征构造:交叉特征、分箱、时间/聚合统计派生信息。特征选择与降维:过滤法(相关系数、互信息)、包裹法(递归特征消除)、嵌入法(L1、树重要性),或 PCA 降维去冗余。

注意点

所有依赖统计量的步骤只在训练集 fit,避免数据泄漏。

常见误区

⚠️ 常见踩坑

常见错误是在划分数据集前对全量做标准化或目标编码,导致泄漏。另外并非所有模型都需缩放——树模型对单调缩放不敏感,而 KNN/SVM/线性模型必须缩放。

追问

追问 1标准化和归一化有什么区别,怎么选?

标准化减均值除标准差,得到零均值单位方差,对异常值较稳健、适合大多数线性与梯度模型;归一化把数据缩放到 [0,1],适合需要有界输入或分布非高斯的场景。有强异常值时优先标准化或用鲁棒缩放。

追问 2过滤、包裹、嵌入三类特征选择方法的差异?

过滤法用统计指标(相关性、互信息)独立打分,快但不考虑模型;包裹法(如 RFE)反复训练模型评估子集,效果好但计算贵;嵌入法在训练中自带选择(L1 稀疏、树的特征重要性),兼顾效率与效果。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • Scikit Learn

    Python 机器学习库,65,876+ stars。最流行的 Python 机器学习框架,提供分类、回归、聚类、降维等全面的 ML 算法,API 设计简洁优雅,是 ML 入门和工业实践的首选