SuperAPI AI 工具集

Feature Engineering

数据与分析

查看项目

更新于 10-15 12:17

技能介绍

用途

特征工程通过领域知识和数学变换来创建与转换特征,以提升模型的性能、可解释性和泛化能力。当仅使用原始特征难以进一步提升模型表现时,可通过特征工程构造更有信息量的输入。

主要能力

该技能涵盖以下工程化技术:

  • 编码(Encoding):将类别变量转换为数值,包括 One-Hot 编码、Ordinal 编码和 Label 编码。
  • 缩放(Scaling):归一化特征取值范围,包括 StandardScaler(均值 0、标准差 1)、MinMaxScaler([0, 1])和 RobustScaler(对异常值稳健)。
  • 多项式特征(Polynomial Features):生成高阶项,用于捕捉非线性关系。
  • 交互特征(Interactions):组合多个特征,如年龄与收入的乘积、年龄与经验的比值。
  • 领域特定变换(Domain-specific):基于业务知识构造特征,如年龄分组、收入等级、对数变换、平方根变换。
  • 时间特征(Temporal):从日期中提取年份、月份、星期几、季度、是否周末等。
  • 分箱/离散化(Binning):等宽分箱与等频分箱。
  • 缺失值处理:均值填充、中位数填充、前向填充等。

使用方式

该技能提供基于 Python 的完整实现示例,主要依赖 pandas、numpy、scikit-learn、matplotlib 和 seaborn。示例流程包括:

  1. 创建示例数据集;
  2. 对类别特征进行 One-Hot、Ordinal、Label 编码;
  3. 对数值特征进行三种缩放并可视化对比;
  4. 生成多项式特征;
  5. 构造交互特征与领域特定特征;
  6. 提取时间特征;
  7. 使用 ColumnTransformer 构建预处理流水线,将数值特征缩放与类别特征 One-Hot 编码组合;
  8. 计算特征统计量(均值、标准差、最小值、最大值、偏度、峰度);
  9. 绘制特征相关性热力图与工程化特征分布图;
  10. 进行等宽与等频分箱;
  11. 处理缺失值。

适用场景

  • 需要使用原始特征之外的变换来提升模型性能;
  • 处理需要编码的类别变量;
  • 特征尺度不同、需要归一化;
  • 基于业务知识创建领域特定特征;
  • 处理偏态分布或非线性关系;
  • 为不同类型、有特定要求的机器学习算法准备数据。

关键原则与最佳实践

  • 基于领域知识创建特征;
  • 移除冗余特征;
  • 对特征进行适当缩放;
  • 正确处理类别变量;
  • 创建有意义的交互项;
  • 在特征工程前理解业务领域;
  • 创建可解释的特征;
  • 避免数据泄漏(使用未来信息);
  • 工程化后测试特征重要性;
  • 记录所有变换;
  • 针对不同算法使用合适的缩放方式。

常见变换

  • 对数变换:用于偏态分布;
  • 多项式特征:用于非线性关系;
  • 交互项:用于组合效应;
  • 分箱:用于类别近似;
  • 归一化:用于跨尺度比较。

交付物

  • 工程化后的特征数据集;
  • 特征变换文档;
  • 新特征的相关性分析;
  • 变换前后的分布对比;
  • 特征重要性排名;
  • 预处理流水线代码;
  • 包含特征描述的数据字典。

限制

资料中未提供关于收费、价格、平台支持范围或具体效果指标的信息。