3. 特征定义与元数据管理
特征定义是规则引擎与风控系统的“数据契约”。没有规范的特征命名、清晰的特征类型划分以及可扩展的元数据模型,特征将退化为难以维护的“魔法数字”。本节从命名规范、类型体系、元数据模型三个层面,建立特征工程的基础设施。
3.1 特征命名规范
特征命名必须同时满足可读性(业务人员能理解)和唯一性(系统不会冲突)。推荐采用分层命名法,格式如下:
[业务域]_[实体类型]_[指标名称]_[聚合维度]_[时间窗口]
各字段说明:
| 字段 | 含义 | 示例值 |
|---|---|---|
| 业务域 | 特征所属业务范围 | payment, loan, fraud |
| 实体类型 | 特征作用的对象 | user, device, order |
| 指标名称 | 具体度量内容 | amount, count, ratio |
| 聚合维度 | 聚合方式 | sum, avg, max, latest |
| 时间窗口 | 统计时间范围 | 1d, 7d, 30d, all |
命名示例:
fraud_user_login_count_1d— 用户近1天登录次数payment_order_amount_sum_7d— 订单近7天支付金额总和loan_device_apply_ratio_30d— 设备近30天申请通过率
避坑提示: 避免使用无意义的缩写(如
a1、f2),禁止在特征名中嵌入版本号(如 _v2),版本管理应通过元数据字段实现。
3.2 特征类型体系
特征类型决定了计算逻辑、存储方式以及规则引擎的匹配策略。将特征划分为四种基础类型:
| 类型 | 描述 | 存储示例 | 规则使用场景 |
|---|---|---|---|
| 布尔型 | 真/假二值 | true / false | 黑名单命中、设备越狱检测 |
| 数值型 | 连续或离散数值 | 12.5, 3, 0.87 | 金额阈值、次数比较、比率计算 |
| 枚举型 | 有限离散值集合 | "high", "medium", "low" | 风险等级、渠道来源、设备类型 |
| 文本型 | 非结构化字符串 | "张三", "192.168.1.1" | 模糊匹配、正则表达式、关键词命中 |
类型转换规则:
- 布尔型可转为数值型(true→1, false→0)
- 枚举型可转为数值型(通过字典映射)
- 文本型不可自动转为数值型,需显式定义解析逻辑
注意: 规则引擎中,文本型特征的匹配性能远低于枚举型和数值型。若特征值集合有限(如国家代码、性别),优先定义为枚举型。
3.3 特征元数据模型设计
元数据是特征的“身份证”,支撑特征发现、血缘追踪、质量监控和版本管理。一个完整的特征元数据模型包含以下核心字段:
| 分组 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 基础信息 | feature_id | string | 全局唯一特征ID |
| feature_name | string | 业务可读名称 | |
| feature_type | enum | boolean / numeric / enum / text | |
| data_type | string | 底层存储类型(int, float, string) | |
| 来源与血缘 | source_table | string | 原始数据表名 |
| source_field | string | 原始字段名 | |
| transform_sql | string | 特征加工SQL片段 | |
| 质量与约束 | nullable | boolean | 是否允许为空 |
| value_range | string | 合法值范围(如 [0, 100]) | |
| enum_values | array | 枚举型特征的合法值列表 | |
| 版本与生命周期 | version | int | 特征版本号 |
| deprecated_at | timestamp | 废弃时间(空表示活跃) |
元数据管理最佳实践:
- 所有特征必须注册到元数据中心,禁止硬编码特征名到规则中
- 特征废弃前需设置
deprecated_at,并保留至少30天过渡期 - 每次特征逻辑变更必须递增
version,并记录变更日志
3.4 特征元数据模型架构
下图展示了特征元数据模型的核心实体关系,以及特征从定义到上线、再到废弃的完整生命周期:
3.5 特征注册与发现流程
特征从开发到上线需经过标准化注册流程,确保元数据完整且可被规则引擎发现:
- 特征设计:确定特征名称、类型、数据来源和加工逻辑
- 元数据录入:填写元数据模型所有必填字段,提交至元数据中心
- 质量校验:自动检查命名规范、类型合法性、值范围约束
- 测试验证:在沙箱环境运行特征计算,比对预期结果
- 发布上线:特征状态置为 active,规则引擎可实时引用
- 监控告警:监控特征空值率、分布偏移、计算延迟
效率提升: 建议为特征注册提供 REST API 和 Web 界面,支持批量导入/导出,降低人工录入错误。
3.6 特征元数据查询与血缘
下图展示了特征血缘追踪的典型场景,帮助定位特征的数据来源和下游使用情况:
3.7 特征元数据管理平台功能清单
一个完整的特征元数据管理平台应包含以下核心功能模块:
| 模块 | 功能 | 优先级 |
|---|---|---|
| 特征注册 | 新增、编辑、删除特征元数据 | P0 |
| 特征检索 | 按名称、类型、业务域、状态搜索 | P0 |
| 血缘图谱 | 可视化展示特征上下游依赖 | P1 |
| 版本对比 | 比较不同版本特征的元数据差异 | P1 |
| 质量看板 | 展示特征空值率、异常率、延迟等指标 | P1 |
| 变更通知 | 特征变更时自动通知下游规则负责人 | P2 |
总结: 特征定义与元数据管理是规则引擎的“数据底座”。命名规范保证可读性,类型体系保证计算正确性,元数据模型保证可管理性。三者缺一不可,共同构成特征工程的核心基础设施。