2. 金融特征工程基础

在金融风控、量化交易与用户画像场景中,特征工程的质量直接决定模型效果的上限。本章聚焦于金融特征的三大分类体系与三种主流存储格式,为后续离线/实时特征回放对比打下坚实的理论基础。

2.1 特征分类体系

金融特征按计算逻辑与时间维度可划分为三类:基础统计特征、时序特征与衍生特征。三者层层递进,共同构成金融特征工程的核心骨架。

核心原则:基础统计特征提供截面快照,时序特征捕捉动态趋势,衍生特征挖掘隐藏关系。三者缺一不可,尤其在信贷评分与反欺诈场景中,时序与衍生特征往往贡献最大的区分度。

2.1.1 基础统计特征

基础统计特征是对原始字段的直接数学汇总,计算窗口通常为固定时间区间(如近30天、近90天)。常见类型包括:

  • 集中趋势:均值、中位数、众数(如近30天平均消费金额)。
  • 离散程度:标准差、方差、极差、四分位距(如交易金额波动率)。
  • 分布形态:偏度、峰度(用于检测异常交易分布)。
  • 计数与占比:交易次数、逾期次数、大额交易占比。

2.1.2 时序特征

时序特征强调数据在时间轴上的顺序性与周期性,是金融场景区别于普通表格数据的核心差异。典型时序特征包括:

  • 滞后特征:T-1、T-7、T-30 时刻的字段值(如昨日余额)。
  • 滑动窗口聚合:近7天移动平均、近30天滚动求和。
  • 趋势与季节性:线性斜率、环比增长率、同比变化率。
  • 时间间隔特征:上次交易距今天数、相邻交易时间间隔的均值/标准差。

2.1.3 衍生特征

衍生特征通过特征交叉、比率计算或业务规则生成,旨在捕捉单一字段无法表达的复杂模式:

  • 比率特征:负债收入比(DTI)、信用卡使用率、收入/交易额比值。
  • 交叉组合:年龄×收入分段、地区×行业类别。
  • 聚合对比:个人均值 vs 群体均值(如用户消费金额与同城市均值之比)。
  • 业务规则编码:是否命中黑名单、多头借贷标记、设备指纹异常标记。
特征类别 典型计算方式 金融场景示例 存储敏感度
基础统计特征 固定窗口聚合(均值/计数) 近30天平均消费金额 低(可预计算)
时序特征 滑动窗口 + 滞后 + 趋势 近7天交易金额移动平均 高(需保留时间顺序)
衍生特征 交叉/比率/规则编码 负债收入比、多头借贷数 中(依赖业务逻辑)
实战提示:在离线特征回放中,基础统计特征可直接从宽表读取;时序特征需要按时间分区回放,避免未来信息泄露;衍生特征则需确保交叉字段在回放时间点均可用。
金融特征分类体系架构 金融特征分类体系架构 原始金融数据 基础统计特征 均值/标准差/计数/占比 时序特征 滞后/滑动/趋势 衍生特征 比率/交叉/规则编码 近30天平均消费 交易金额标准差 大额交易占比 T-7余额 7日移动平均 环比增长率 负债收入比(DTI) 年龄×收入分段 多头借贷标记 三类特征在离线/实时回放中需采用不同的存储与计算策略

2.2 特征存储格式对比

金融特征数据通常以列式或行式格式存储在数据湖或特征存储中。三种主流格式——Parquet、ORC、Avro——在压缩率、读取性能与Schema演进支持上各有优劣。

2.2.1 Parquet

Parquet 是 Apache Hadoop 生态中最流行的列式存储格式,专为分析型查询优化。其核心特性包括:

  • 列式布局:按列存储数据,支持谓词下推与列裁剪,大幅减少I/O。
  • 高效压缩:支持 Snappy、Gzip、ZSTD 等编码,同一列数据类型一致,压缩比高。
  • Schema 嵌套:原生支持复杂嵌套结构(如 JSON 对象、数组)。
  • 适用场景:离线批量特征计算、特征存储宽表、Spark/Hive 分析任务。

2.2.2 ORC

ORC(Optimized Row Columnar)由 Hive 社区开发,在 Hive 与 Presto 生态中性能表现突出:

  • 列式 + 轻量索引:内置 min/max 索引与布隆过滤器,加速数据跳过。
  • ACID 事务支持:支持 Hive 的 ACID 操作,适合需要更新/删除的场景。
  • 压缩效率:默认使用 ZLIB 压缩,在相同数据量下通常比 Parquet 压缩率更高。
  • 适用场景:Hive 数仓、大规模离线特征存储、需要事务保证的特征表。

2.2.3 Avro

Avro 是行式存储格式,强调序列化效率与 Schema 演进能力:

  • 行式布局:按行存储,适合逐条写入与实时流处理。
  • Schema 内嵌:数据文件自带 Schema,支持向前/向后兼容。
  • 低序列化开销:二进制编码紧凑,适合 Kafka 消息与实时特征管道。
  • 适用场景:实时特征计算、Kafka 消息序列化、在线特征服务。
对比维度 Parquet ORC Avro
存储布局 列式 列式 + 索引 行式
压缩效率 高(Snappy/ZSTD) 更高(ZLIB 默认) 中(Deflate/Snappy)
读取性能(分析查询) 优秀(列裁剪) 优秀(索引跳过) 一般(需读整行)
写入性能(逐条) 较差(批量写入) 较差(批量写入) 优秀(流式写入)
Schema 演进 支持(有限) 支持(有限) 优秀(完全兼容)
典型金融场景 离线特征宽表 Hive 数仓特征表 实时特征管道
避坑指南:在离线特征回放中,若使用 Avro 存储历史特征快照,回放时需逐行反序列化,性能远低于 Parquet 的列裁剪。建议:离线回放用 Parquet/ORC,实时回放用 Avro + 内存特征缓存。
特征存储格式选型决策流程 特征存储格式选型决策流程 特征存储需求 批量读 or 逐条写? 批量读为主 Parquet 列裁剪 + 高压缩 逐条写为主 Avro 流式写入 + Schema演进 离线特征宽表 实时特征管道 Hive 数仓特征表 需ACID/索引? 选型核心:离线分析用 Parquet/ORC,实时流用 Avro 特征回放场景中,离线回放优先 Parquet,实时回放优先 Avro

2.3 特征分类与存储格式的映射关系

在实际金融特征工程中,不同类别的特征适合不同的存储格式。下表总结了推荐映射关系:

特征类别 推荐存储格式 理由 回放场景
基础统计特征 Parquet / ORC 批量计算、列裁剪读取快 离线回放
时序特征(滑动窗口) Parquet(分区存储) 按时间分区裁剪,避免全表扫描 离线回放 + 时间点对齐
时序特征(实时滞后) Avro + Redis 缓存 低延迟读取,Schema 兼容 实时回放
衍生特征(规则编码) Avro / Parquet 规则变更频繁,Avro 支持 Schema 演进 离线 + 实时混合
架构决策要点:在金融特征回放平台中,建议采用分层存储策略——离线层使用 Parquet 存储全量历史特征快照,实时层使用 Avro 存储增量特征事件,中间通过特征回放引擎进行时间点对齐与拼接。这种架构既能保证离线回放的高吞吐,又能满足实时回放的低延迟要求。