3、数据采集与清洗:贷后预警所需的数据源及数据预处理方法
贷后预警模型的精度,很大程度上取决于数据源的质量与广度。坏样本归因分析需要从多个维度还原客户逾期前后的真实状态,单一数据源往往存在信息盲区。本章系统梳理三大核心数据源——人行征信、三方数据、行为数据——并给出标准化的数据预处理与清洗方法,确保后续归因分析建立在干净、可靠的数据基础之上。
核心原则:贷后预警数据采集应遵循“全面覆盖、交叉验证、时效优先”三大原则。任何单一数据源都可能存在滞后或缺失,多源融合才能还原坏样本的完整归因链条。
3.1 三大数据源全景
贷后预警所需的数据源可归纳为以下三类,每类数据在坏样本归因中承担不同的角色:
| 数据源类型 | 核心内容 | 归因价值 | 典型更新频率 |
|---|---|---|---|
| 人行征信 | 信贷记录、逾期明细、查询次数、担保信息 | 判断客户整体负债水平与历史信用恶化趋势 | 月度(T+1) |
| 三方数据 | 多头借贷、黑名单、设备指纹、社交关系、司法涉诉 | 识别共债风险、欺诈团伙、失联修复线索 | 实时/日级 |
| 行为数据 | APP操作日志、交易流水、还款行为、客服交互记录 | 捕捉客户还款意愿突变、资金链断裂前兆 | 实时/小时级 |
3.2 人行征信数据采集与清洗要点
人行征信是贷后预警中最权威的负债端数据源,但存在明显的时效滞后(通常T+1更新)和字段缺失问题。在坏样本归因中,重点关注以下维度:
- 逾期明细表:提取近6个月/12个月的逾期天数、逾期金额、逾期次数,构建“逾期恶化斜率”指标。
- 查询记录:近3个月机构查询次数(硬查询),识别客户是否在多家机构密集申贷(共债信号)。
- 担保信息:对外担保余额与担保代偿记录,判断或有负债风险。
- 信贷结构:信用卡、房贷、消费贷、经营贷的余额占比变化,识别资金链紧张程度。
常见陷阱:人行征信中的“当前逾期”字段可能因银行报送时间差而显示为正常,实际客户已逾期。建议同时拉取“最近24个月还款记录”进行逐月比对,避免被T+1数据误导。
3.3 三方数据采集与清洗要点
三方数据是贷后预警中补充人行征信盲区的关键数据源,尤其在欺诈识别和失联修复方面不可替代。常见三方数据源及清洗重点如下:
| 三方数据类别 | 典型供应商 | 清洗重点 | 归因应用场景 |
|---|---|---|---|
| 多头借贷 | 百行、朴道、同盾 | 去重、去无效查询、时间窗口对齐 | 识别共债崩盘前兆 |
| 黑名单/反欺诈 | 同盾、白骑士 | 匹配规则、命中时间戳、标签归一化 | 欺诈团伙关联分析 |
| 设备指纹 | 极验、数美 | 设备ID标准化、异常设备聚类 | 团伙欺诈与设备农场识别 |
| 司法涉诉 | 法海、中经 | 案件状态解析、执行金额提取 | 法律风险传导预警 |
| 运营商数据 | 中国移动、联通、电信 | 通话时长、联系人密度、失联指数 | 失联概率预测与修复 |
实操建议:三方数据接口调用时,务必记录每次查询的“数据快照时间”。同一客户在不同时间点的三方数据可能存在较大差异,归因分析时必须使用与逾期时间点最接近的快照数据,避免使用事后数据造成归因偏差。
3.4 行为数据采集与清洗要点
行为数据是贷后预警中时效性最强的数据源,能够捕捉客户还款意愿和资金状况的实时变化。典型行为数据包括:
- APP操作日志:登录频率、页面停留时长、功能点击序列(如是否频繁查看“还款计划”或“延期申请”)。
- 交易流水:近7天/30天入账金额、出账金额、交易对手类型(个人/对公/理财平台)。
- 还款行为:还款方式(主动还款/代扣)、还款时间偏好(工作日/节假日)、还款失败次数。
- 客服交互:进线次数、投诉内容关键词(如“失业”“生病”“周转困难”)、是否承诺还款但未履约。
3.5 数据预处理通用方法
无论数据源来自何处,在进入坏样本归因模型之前,都必须经过标准化的预处理流程。以下是贷后预警场景下最关键的预处理步骤:
3.5.1 缺失值处理
- 人行征信缺失:若客户无信贷记录(征信白户),标记为“白户”类别,不填充均值,避免引入偏差。
- 三方数据缺失:若某三方数据源未命中(如无多头借贷记录),填充为0或“未命中”,保留缺失信息作为特征。
- 行为数据缺失:若客户未产生行为日志(如未登录APP),填充为“无行为”,并单独生成“行为缺失天数”特征。
3.5.2 异常值检测与处理
- 数值型异常:使用IQR(四分位距)或Z-score方法检测极端值。例如,单日多头查询次数超过100次,极有可能是机器查询或数据错误,应截断或剔除。
- 时间戳异常:检查数据时间是否在合理范围内(如还款时间早于放款时间),异常记录直接剔除并记录日志。
- 逻辑异常:如“逾期天数”大于“贷款期限”,属于数据错误,需回源核实或剔除。
3.5.3 数据标准化与归一化
- Min-Max归一化:适用于有明确上下界的指标(如多头借贷次数、查询次数),将数值映射到[0,1]区间。
- Z-score标准化:适用于近似正态分布的指标(如交易金额、通话时长),处理后均值为0,标准差为1。
- 分箱离散化:对于年龄、收入等连续变量,按业务经验分箱(如收入分为低/中/高三档),便于后续规则引擎使用。
3.5.4 时间窗口对齐
不同数据源的时间粒度不同,必须统一对齐到同一时间基准。建议以“逾期发生日”为T日,向前回溯不同时间窗口:
| 数据源 | 推荐回溯窗口 | 对齐方式 |
|---|---|---|
| 人行征信 | T-6个月、T-12个月 | 取最近一次报送月份的快照 |
| 三方数据 | T-7天、T-30天、T-90天 | 取窗口内最大/均值/最近值 |
| 行为数据 | T-1天、T-7天、T-30天 | 按自然日聚合统计 |
关键提醒:时间窗口对齐是坏样本归因中最容易出错的环节。如果使用逾期发生之后的数据(如逾期后的还款行为)来预测逾期原因,会产生“未来信息泄露”,导致归因结论完全错误。务必在特征工程阶段严格限定数据的时间范围。
3.6 数据清洗代码示例
以下是一个典型的数据清洗流程代码片段,适用于贷后预警场景下的多源数据预处理:
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
# 1. 加载多源数据
credit_data = pd.read_csv('credit_report.csv') # 人行征信
third_party = pd.read_csv('third_party.csv') # 三方数据
behavior_data = pd.read_csv('behavior_log.csv') # 行为数据
# 2. 缺失值处理
# 征信白户:标记为-1
credit_data['credit_score'].fillna(-1, inplace=True)
# 三方数据未命中:填充0
third_party['multi_head_cnt'].fillna(0, inplace=True)
# 行为数据缺失:填充-1并生成缺失标记
behavior_data['login_days_7d'].fillna(-1, inplace=True)
behavior_data['is_behavior_missing'] = (behavior_data['login_days_7d'] == -1).astype(int)
# 3. 异常值截断(IQR方法)
def cap_outliers(series, multiplier=1.5):
Q1 = series.quantile(0.25)
Q3 = series.quantile(0.75)
IQR = Q3 - Q1
lower = Q1 - multiplier * IQR
upper = Q3 + multiplier * IQR
return series.clip(lower, upper)
third_party['multi_head_cnt'] = cap_outliers(third_party['multi_head_cnt'])
# 4. 时间窗口对齐(以逾期日T为基准)
T_date = pd.to_datetime('2024-06-15')
# 只保留T-30天内的行为数据
behavior_data = behavior_data[
behavior_data['event_time'] >= T_date - pd.Timedelta(days=30)
]
# 5. 归一化
scaler = MinMaxScaler()
third_party['multi_head_norm'] = scaler.fit_transform(
third_party[['multi_head_cnt']]
)
print("数据清洗完成,特征集维度:",
credit_data.shape[1] + third_party.shape[1] + behavior_data.shape[1])
工程化建议:在生产环境中,建议将数据清洗流程封装为ETL管道(如Airflow DAG),每天定时执行。清洗后的数据应写入独立的“特征宽表”,供下游归因模型和预警规则引擎直接调用,避免每次分析都重复清洗。
3.7 数据质量监控与治理
数据清洗不是一次性工作,贷后预警系统需要建立持续的数据质量监控机制。以下是最核心的监控指标:
- 数据完整性:每日各数据源的记录数是否在合理范围内,是否存在大面积缺失。
- 数据时效性:人行征信是否按时更新(T+1),三方数据接口是否正常返回。
- 数据一致性:同一客户在不同数据源中的关键字段(如手机号、身份证号)是否匹配。
- 异常波动告警:当某个特征的均值或标准差出现超过3σ的波动时,自动触发告警,排查是否数据源异常或业务环境变化。
通过系统化的数据采集与清洗,贷后预警模型才能获得高质量的输入特征,坏样本归因分析也才能得出可靠、可落地的结论。下一阶段将基于清洗后的数据,进行特征工程与归因模型构建。