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 特征字典管理流程

  1. 注册:新特征开发前,必须在特征字典中注册,通过审批后方可进入开发。
  2. 评审:特征定义变更需经过业务、数据、模型三方评审,确保定义无歧义。
  3. 发布:评审通过后,更新特征字典版本,并通知所有下游消费方。
  4. 审计:定期审计特征字典与实际代码的一致性,发现差异立即标记并修复。
实践建议:使用YAML或JSON格式维护特征字典文件,纳入Git仓库管理,便于版本对比和自动化校验工具读取。

2.2 数据血缘:特征溯源与影响分析

数据血缘记录了特征从原始数据源到最终模型输入的完整加工链路。在特征一致性校验中,数据血缘用于回答两个关键问题:“特征从哪里来?” 和 “特征变更会影响谁?”

2.2.1 数据血缘核心要素

  • 源节点:原始数据表、API接口、外部数据源。
  • 加工节点:ETL任务、特征工程脚本、SQL视图。
  • 目标节点:特征宽表、模型输入表、评分服务接口。
  • 血缘关系:字段级映射、转换函数、聚合逻辑。
数据血缘关系图 ods.loan_application ods.customer_info 特征工程ETL (Python/SQL) 特征宽表 feat_wide_table 血缘关系示例: ods.loan_application.app_loan_amt → 特征工程ETL(COALESCE) → feat_wide_table.loan_amt ods.customer_info.cust_age → 特征工程ETL(年龄分段) → feat_wide_table.age_bucket

2.2.2 血缘在一致性校验中的应用

场景 血缘作用 校验方法
源表字段变更 快速定位受影响的特征 血缘解析 → 特征字典比对 → 标记受影响特征
特征加工逻辑变更 追溯变更影响的下游模型 血缘反向追溯 → 影响范围评估 → 通知消费方
数据质量异常 定位异常产生的加工环节 血缘正向追踪 → 逐节点检查 → 定位根因

2.3 版本控制:特征定义的可追溯性

特征定义会随业务需求、数据源变化、模型迭代而不断演进。没有版本控制,将无法判断“当前模型使用的是哪个版本的特征定义”,也无法回滚到历史版本进行一致性比对。

2.3.1 版本控制范围

  • 特征字典版本:特征定义本身的版本,每次变更需更新版本号。
  • 特征工程代码版本:生成特征的SQL、Python脚本版本,与特征字典版本关联。
  • 模型训练版本:训练时使用的特征版本快照,用于复现和校验。
  • 线上服务版本:生产环境当前使用的特征版本,用于监控一致性。

2.3.2 版本控制策略

策略 说明 适用场景
语义化版本 主版本.次版本.修订号(如 v2.1.0) 特征字典、模型版本管理
Git标签 在Git仓库中为特征字典文件打标签 代码与定义同步管理
时间戳快照 记录每次变更的时间戳和变更内容 线上服务版本追溯
版本控制与一致性校验关系图 特征版本仓库 Git + 语义化版本 v1.0.0 / v2.0.0 / v2.1.0 模型训练版本 训练快照 v2.0.0 特征集锁定 线上服务版本 当前使用 v2.1.0 实时特征计算 一致性校验触发场景: 1. 训练版本 v2.0.0 与线上版本 v2.1.0 不一致 → 触发特征定义差异分析 2. 线上版本 v2.1.0 与特征字典最新版 v2.1.0 一致 → 通过校验 3. 特征字典版本 v2.1.0 与特征工程代码标签 v2.1.0 一致 → 通过校验

2.4 三者协同:构建特征治理闭环

特征字典、数据血缘、版本控制三者并非孤立存在,而是构成一个完整的特征治理闭环:

  1. 特征字典提供定义的权威基准。
  2. 数据血缘提供加工链路和影响分析能力。
  3. 版本控制提供变更历史和可追溯性。
常见陷阱:只维护特征字典但不做版本控制,导致字典与代码脱节;只做血缘记录但不与特征字典关联,导致血缘无法用于校验。三者必须联动管理,缺一不可。