3. 数据准备与探索:数据源选择、数据质量检查、缺失值处理、异常值检测

在信用评分模型开发中,数据是模型性能的基石。本章聚焦于从原始业务数据到建模可用数据集的完整转化过程,涵盖数据源选择、质量检查、缺失值处理与异常值检测四个核心环节。每一步决策都会直接影响 Champion 模型的区分能力与稳定性。

3.1 数据源选择与评估

信用评分模型通常依赖三类数据源,其选择需兼顾覆盖率、时效性与合规性:

数据源类型 典型内容 优势 风险
内部申请数据 申请表信息、历史借贷记录、还款行为 高相关性、获取成本低 样本偏差(仅限存量客户)
外部征信数据 央行征信、百行征信、多头借贷记录 覆盖全市场、客观性强 更新延迟、合规审批周期长
替代数据 运营商数据、电商消费、社保公积金 覆盖征信白户、行为维度丰富 数据标准化差、隐私争议
Champion 对照实验要点: 在 Champion 与 Challenger 模型对比中,应确保两个模型使用完全相同的数据源与时间窗口,否则无法区分性能差异来自模型算法还是数据基础。

3.2 数据质量检查

数据质量检查是数据准备阶段最耗时但最关键的步骤。建议按以下流程逐项排查:

  1. 完整性检查: 统计每个字段的空值比例,设定阈值(如 >50% 则考虑剔除)。
  2. 唯一性检查: 确认主键(如客户ID)无重复,重复记录需去重或合并。
  3. 一致性检查: 验证字段取值是否符合业务逻辑(如年龄 > 0,贷款金额 ≤ 申请金额)。
  4. 时效性检查: 检查数据时间戳是否在建模时间窗口内,避免未来数据泄露。
  5. 准确性检查: 抽样比对原始凭证与数据库记录,计算错误率。
质量检查清单示例:
字段名         空值率(%)  唯一值数  异常值标记  结论
customer_id    0.00       100,000  无          通过
age            2.30       78        含 -1, 200  需处理
income         15.40      5,234     含 999999   需处理
loan_amount    0.10       1,200     无          通过
overdue_days   8.50       365       含 -5       需处理

3.3 缺失值处理策略

缺失值处理需结合缺失机制与业务含义,常用方法包括:

处理方法 适用场景 实现方式 对 Champion 模型的影响
删除记录 缺失率低(<5%)且随机缺失 直接删除含缺失值的样本 样本量减少,可能损失尾部信息
均值/中位数填充 数值型字段,缺失率中等 用训练集均值或中位数填充 降低方差,可能削弱区分度
众数填充 分类型字段,缺失率较低 用训练集出现频率最高的类别填充 可能引入偏态分布
模型预测填充 缺失率较高(10%-30%) 用回归/决策树预测缺失值 计算成本高,但保留数据分布
缺失值单独编码 缺失本身具有业务含义 将缺失值作为单独类别或特殊值 可捕捉“未提供信息”的风险信号
Champion 对照实验警告: 缺失值处理方法必须在 Champion 与 Challenger 模型中保持一致。若 Champion 使用均值填充而 Challenger 使用模型预测填充,则无法判断性能差异来自模型算法还是数据预处理。

3.4 异常值检测与处理

异常值会扭曲模型参数估计,尤其对逻辑回归等线性模型影响显著。常用检测方法包括:

  • 统计方法: Z-score(|Z| > 3 视为异常)、IQR 方法(超出 Q1-1.5IQR 或 Q3+1.5IQR)。
  • 业务规则: 年龄 < 18 或 > 100、收入为负值、贷款金额超过产品上限。
  • 可视化方法: 箱线图、直方图、散点图辅助人工判断。
  • 模型方法: 孤立森林、LOF(局部异常因子)用于高维数据。
异常值处理原则:
  1. 先区分“业务异常”与“数据录入错误”:业务异常(如高收入客户)可能包含重要风险信息,不宜直接删除。
  2. 对连续型异常值采用截尾处理(Winsorization),将极端值替换为 1% 或 99% 分位数。
  3. 对分类型异常值(如未知代码 -999)归入“其他”类别或单独编码。
  4. 记录所有异常值处理逻辑,确保 Champion 与 Challenger 模型处理流程一致。
数据准备与探索全流程 数据源选择 内部申请 / 外部征信 / 替代数据 数据质量检查 完整性 / 唯一性 / 一致性 / 时效性 缺失值处理 删除 / 填充 / 单独编码 异常值检测 Z-score / IQR / 业务规则 / 模型方法 异常值处理 截尾 / 剔除 / 单独编码 建模数据集(Champion / Challenger) 确保两模型使用完全相同的预处理流程 Champion 对照实验关键约束 所有数据预处理步骤(缺失值填充方法、异常值截尾阈值、字段筛选规则)必须在 Champion 与 Challenger 模型中完全一致

3.5 数据探索性分析(EDA)要点

在完成数据清洗后,需对数据进行探索性分析,为特征工程提供方向:

  • 单变量分析: 查看每个特征的分布形态、集中趋势与离散程度,识别长尾分布或双峰分布。
  • 双变量分析: 计算每个特征与目标变量(好坏标签)的 IV(信息量)值,筛选高预测力特征。
  • 相关性分析: 计算特征间相关系数,识别高度相关(|r| > 0.7)的特征对,避免多重共线性。
  • 时间稳定性分析: 按时间窗口(月/季)计算特征分布稳定性,使用 PSI(群体稳定性指标)量化。
EDA 输出清单: 每次 EDA 应输出特征分布图、IV 排名表、相关性热力图、PSI 时序图,作为 Champion 模型开发文档的附件存档。
数据质量与异常值处理决策树 原始数据 数据质量检查通过? 否 是 修复质量问题 去重 / 格式转换 / 逻辑校验 缺失值检查 缺失值处理 填充 / 删除 / 单独编码 异常值检测与处理 截尾 / 剔除 / 业务规则 建模数据集 Champion / Challenger 共用同一套处理逻辑 所有决策分支必须记录在模型开发文档中

3.6 数据准备阶段常见陷阱

陷阱 表现 后果 规避方法
未来数据泄露 使用建模时间点之后的数据计算特征 模型在线上表现远低于离线测试 严格按时间窗口切分训练/测试集
填充信息泄露 使用全量数据均值填充缺失值 测试集信息流入训练集 仅使用训练集统计量进行填充
异常值过度处理 将业务正常的高风险客户误判为异常值剔除 模型失去对高风险群体的识别能力 先业务判断,后统计方法
数据漂移未检测 训练数据与线上数据分布不一致 模型上线后快速衰减 定期计算 PSI,设置监控阈值
Champion 对照实验最佳实践:
  1. 将数据预处理流程封装为可复用的 Pipeline,确保 Champion 与 Challenger 模型调用同一套代码。
  2. 在模型开发文档中记录每个字段的缺失率、异常值比例、处理方式,便于后续审计与复现。
  3. 对缺失值填充和异常值截尾的阈值进行敏感性分析,评估不同处理方式对模型性能的影响。