4. 数据准备与探索:数据源类型、质量检查与异常处理
在信贷决策分群评分沙盘中,数据是构建模型的基石。本章聚焦于数据源的类型识别、质量检查以及缺失值与异常值的处理策略。只有经过严格清洗与探索的数据,才能支撑后续稳健的分群与评分开发。
4.1 数据源类型:征信、行为与第三方
信贷评分模型通常融合三类数据源,每类数据在风险刻画中扮演不同角色。下表对比了其核心特征与典型字段:
| 数据源类型 | 核心特征 | 典型字段示例 | 更新频率 |
|---|---|---|---|
| 征信数据 | 权威性高,反映历史信贷履约记录 | 逾期天数、贷款余额、查询次数、担保信息 | 月度/季度 |
| 行为数据 | 实时性强,体现近期还款意愿与能力 | 还款准时率、额度使用率、登录频次、交易流水 | 日/周 |
| 第三方数据 | 补充维度,覆盖社交、黑名单、多头借贷 | 多头借贷指数、法院执行记录、设备指纹、电商消费 | 实时/日 |
沙盘提示: 在沙盘实战中,建议优先使用征信数据构建基础评分,再逐步叠加行为与第三方数据,观察模型区分度的增量变化(如KS、AUC提升)。
4.2 数据质量检查:五维评估框架
数据质量直接影响模型稳定性。我们采用五维评估框架对每个字段进行扫描,确保数据可用性。
- 完整性:检查缺失率,区分随机缺失与系统性缺失。
- 准确性:验证字段值是否在合理范围内(如年龄0-120、逾期天数≥0)。
- 一致性:跨表或跨时间点校验逻辑关系(如贷款余额≤授信额度)。
- 时效性:确认数据采集时间戳是否在建模时间窗口内。
- 唯一性:检查主键是否重复,避免同一客户多条记录。
质量检查清单示例(沙盘常用):
- 缺失率 < 5%:直接保留或均值填充;5%-20%:需分析缺失原因;> 20%:考虑剔除或构造缺失标志。
- 异常值:对连续变量使用IQR或Z-score方法识别,对离散变量检查频次分布。
- 逻辑校验:例如“逾期天数 > 0”时,“当前逾期金额”必须 > 0。
4.3 缺失值处理策略
缺失值处理需结合业务含义与数据分布。下表总结了不同场景下的推荐方法:
| 缺失类型 | 业务含义 | 推荐处理方法 | 沙盘注意事项 |
|---|---|---|---|
| 完全随机缺失 | 无系统性偏差 | 均值/中位数填充、模型预测填充 | 避免引入偏差,可尝试多重插补 |
| 随机缺失 | 与其他变量相关 | 回归填充、KNN填充 | 需保留缺失标志变量 |
| 非随机缺失 | 与缺失值本身相关 | 单独分组、构造缺失指示器 | 常见于“拒绝推断”场景,需谨慎 |
避坑指南: 切勿在未分析缺失原因的情况下统一填充0或均值。例如,征信查询次数缺失可能代表“无信贷记录”,应单独编码为-1或单独分组,而非填充0。
4.4 异常值识别与处理
异常值可能源于数据录入错误、极端客户行为或欺诈。处理流程如下:
- 识别:使用箱线图(IQR法)、Z-score(阈值±3)或业务规则(如年龄>100)。
- 诊断:区分“真实极端值”(如高收入客户)与“错误值”(如年龄200)。
- 处理:截尾(Winsorize)、剔除、或单独分箱。
# Python示例:IQR法识别异常值
import pandas as pd
import numpy as np
def detect_outliers_iqr(df, column):
Q1 = df[column].quantile(0.25)
Q3 = df[column].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = df[(df[column] < lower_bound) | (df[column] > upper_bound)]
return outliers
# 示例:对“贷款金额”字段检测异常值
outliers_loan = detect_outliers_iqr(df, 'loan_amount')
print(f"检测到异常值数量:{len(outliers_loan)}")
4.5 数据探索与可视化:分群视角
在分群评分沙盘中,数据探索需围绕“分群”目标展开。以下SVG展示了从原始数据到分群特征探索的流程:
4.6 分群视角下的数据分布对比
在分群评分中,不同客群的数据分布可能存在显著差异。以下SVG展示了两个假设分群(“优质客群”与“高风险客群”)在“近6个月逾期次数”字段上的分布对比,帮助识别分群特征的有效性:
沙盘实战要点:
- 在数据探索阶段,务必按分群(如Vintage、额度段、风险等级)分别统计缺失率与异常值比例,避免全局统计掩盖群体差异。
- 对于分群评分,缺失值处理策略可因群而异:例如,优质客群的行为数据缺失可能代表“无行为”,而高风险客群的缺失可能代表“信息不透明”。
- 建议在探索阶段生成“分群×字段缺失率”热力图,快速定位数据短板。