2. 数据源与特征定义管理:特征字典、数据血缘、版本控制基础
特征一致性校验的前提是“特征可追溯、定义可管理、变更可记录”。如果特征字典缺失、数据血缘混乱、版本控制缺失,任何校验都将是空中楼阁。本章聚焦数据源与特征定义管理的三大基础组件:特征字典、数据血缘、版本控制,为后续一致性校验建立元数据根基。
2.1 特征字典:特征定义的唯一权威来源
特征字典是信用评分模型中所有特征的“元数据仓库”,它记录了每个特征的业务含义、计算逻辑、数据类型、取值范围、衍生规则等核心信息。没有特征字典,特征一致性校验将失去参照基准。
核心原则:特征字典必须作为单一事实来源(Single Source of Truth),所有下游开发、测试、监控环节的特征定义均需从字典中获取,禁止在代码中硬编码特征逻辑。
2.1.1 特征字典核心字段
| 字段类别 | 字段名称 | 说明 | 示例 |
|---|---|---|---|
| 标识 | 特征ID | 全局唯一标识符 | FEAT_LOAN_AMT_001 |
| 业务 | 特征名称 | 业务可读名称 | 申请贷款金额 |
| 业务 | 业务定义 | 业务含义描述 | 客户在申请表中填写的贷款本金金额 |
| 技术 | 数据类型 | 存储类型与精度 | DECIMAL(18,2) |
| 技术 | 计算逻辑 | SQL/Python表达式或伪代码 | COALESCE(loan_amt, 0) |
| 约束 | 取值范围 | 合法值域或枚举列表 | [0, 99999999.99] |
| 约束 | 缺失值处理 | 默认值或填充策略 | 填充为0 |
| 治理 | 数据源 | 原始表/字段来源 | ods.loan_application.app_loan_amt |
| 治理 | 版本号 | 当前生效版本 | v2.1.0 |
| 治理 | 负责人 | 特征Owner | 张三 |
2.1.2 特征字典管理流程
- 注册:新特征开发前,必须在特征字典中注册,通过审批后方可进入开发。
- 评审:特征定义变更需经过业务、数据、模型三方评审,确保定义无歧义。
- 发布:评审通过后,更新特征字典版本,并通知所有下游消费方。
- 审计:定期审计特征字典与实际代码的一致性,发现差异立即标记并修复。
实践建议:使用YAML或JSON格式维护特征字典文件,纳入Git仓库管理,便于版本对比和自动化校验工具读取。
2.2 数据血缘:特征溯源与影响分析
数据血缘记录了特征从原始数据源到最终模型输入的完整加工链路。在特征一致性校验中,数据血缘用于回答两个关键问题:“特征从哪里来?” 和 “特征变更会影响谁?”
2.2.1 数据血缘核心要素
- 源节点:原始数据表、API接口、外部数据源。
- 加工节点:ETL任务、特征工程脚本、SQL视图。
- 目标节点:特征宽表、模型输入表、评分服务接口。
- 血缘关系:字段级映射、转换函数、聚合逻辑。
2.2.2 血缘在一致性校验中的应用
| 场景 | 血缘作用 | 校验方法 |
|---|---|---|
| 源表字段变更 | 快速定位受影响的特征 | 血缘解析 → 特征字典比对 → 标记受影响特征 |
| 特征加工逻辑变更 | 追溯变更影响的下游模型 | 血缘反向追溯 → 影响范围评估 → 通知消费方 |
| 数据质量异常 | 定位异常产生的加工环节 | 血缘正向追踪 → 逐节点检查 → 定位根因 |
2.3 版本控制:特征定义的可追溯性
特征定义会随业务需求、数据源变化、模型迭代而不断演进。没有版本控制,将无法判断“当前模型使用的是哪个版本的特征定义”,也无法回滚到历史版本进行一致性比对。
2.3.1 版本控制范围
- 特征字典版本:特征定义本身的版本,每次变更需更新版本号。
- 特征工程代码版本:生成特征的SQL、Python脚本版本,与特征字典版本关联。
- 模型训练版本:训练时使用的特征版本快照,用于复现和校验。
- 线上服务版本:生产环境当前使用的特征版本,用于监控一致性。
2.3.2 版本控制策略
| 策略 | 说明 | 适用场景 |
|---|---|---|
| 语义化版本 | 主版本.次版本.修订号(如 v2.1.0) | 特征字典、模型版本管理 |
| Git标签 | 在Git仓库中为特征字典文件打标签 | 代码与定义同步管理 |
| 时间戳快照 | 记录每次变更的时间戳和变更内容 | 线上服务版本追溯 |
2.4 三者协同:构建特征治理闭环
特征字典、数据血缘、版本控制三者并非孤立存在,而是构成一个完整的特征治理闭环:
- 特征字典提供定义的权威基准。
- 数据血缘提供加工链路和影响分析能力。
- 版本控制提供变更历史和可追溯性。
常见陷阱:只维护特征字典但不做版本控制,导致字典与代码脱节;只做血缘记录但不与特征字典关联,导致血缘无法用于校验。三者必须联动管理,缺一不可。