3、数据采集与清洗:贷后预警所需的数据源及数据预处理方法

贷后预警模型的精度,很大程度上取决于数据源的质量与广度。坏样本归因分析需要从多个维度还原客户逾期前后的真实状态,单一数据源往往存在信息盲区。本章系统梳理三大核心数据源——人行征信、三方数据、行为数据——并给出标准化的数据预处理与清洗方法,确保后续归因分析建立在干净、可靠的数据基础之上。

核心原则:贷后预警数据采集应遵循“全面覆盖、交叉验证、时效优先”三大原则。任何单一数据源都可能存在滞后或缺失,多源融合才能还原坏样本的完整归因链条。

3.1 三大数据源全景

贷后预警所需的数据源可归纳为以下三类,每类数据在坏样本归因中承担不同的角色:

数据源类型 核心内容 归因价值 典型更新频率
人行征信 信贷记录、逾期明细、查询次数、担保信息 判断客户整体负债水平与历史信用恶化趋势 月度(T+1)
三方数据 多头借贷、黑名单、设备指纹、社交关系、司法涉诉 识别共债风险、欺诈团伙、失联修复线索 实时/日级
行为数据 APP操作日志、交易流水、还款行为、客服交互记录 捕捉客户还款意愿突变、资金链断裂前兆 实时/小时级
贷后预警三大数据源融合架构 人行征信 信贷记录·逾期·查询 三方数据 多头·黑名单·设备 行为数据 操作日志·交易·客服 多源数据融合引擎 坏样本归因特征集 逾期归因·失联修复·风险传导 数据源之间需通过客户ID、设备ID、手机号等关键字段进行关联与交叉验证

3.2 人行征信数据采集与清洗要点

人行征信是贷后预警中最权威的负债端数据源,但存在明显的时效滞后(通常T+1更新)和字段缺失问题。在坏样本归因中,重点关注以下维度:

  • 逾期明细表:提取近6个月/12个月的逾期天数、逾期金额、逾期次数,构建“逾期恶化斜率”指标。
  • 查询记录:近3个月机构查询次数(硬查询),识别客户是否在多家机构密集申贷(共债信号)。
  • 担保信息:对外担保余额与担保代偿记录,判断或有负债风险。
  • 信贷结构:信用卡、房贷、消费贷、经营贷的余额占比变化,识别资金链紧张程度。
常见陷阱:人行征信中的“当前逾期”字段可能因银行报送时间差而显示为正常,实际客户已逾期。建议同时拉取“最近24个月还款记录”进行逐月比对,避免被T+1数据误导。

3.3 三方数据采集与清洗要点

三方数据是贷后预警中补充人行征信盲区的关键数据源,尤其在欺诈识别和失联修复方面不可替代。常见三方数据源及清洗重点如下:

三方数据类别 典型供应商 清洗重点 归因应用场景
多头借贷 百行、朴道、同盾 去重、去无效查询、时间窗口对齐 识别共债崩盘前兆
黑名单/反欺诈 同盾、白骑士 匹配规则、命中时间戳、标签归一化 欺诈团伙关联分析
设备指纹 极验、数美 设备ID标准化、异常设备聚类 团伙欺诈与设备农场识别
司法涉诉 法海、中经 案件状态解析、执行金额提取 法律风险传导预警
运营商数据 中国移动、联通、电信 通话时长、联系人密度、失联指数 失联概率预测与修复
实操建议:三方数据接口调用时,务必记录每次查询的“数据快照时间”。同一客户在不同时间点的三方数据可能存在较大差异,归因分析时必须使用与逾期时间点最接近的快照数据,避免使用事后数据造成归因偏差。

3.4 行为数据采集与清洗要点

行为数据是贷后预警中时效性最强的数据源,能够捕捉客户还款意愿和资金状况的实时变化。典型行为数据包括:

  • APP操作日志:登录频率、页面停留时长、功能点击序列(如是否频繁查看“还款计划”或“延期申请”)。
  • 交易流水:近7天/30天入账金额、出账金额、交易对手类型(个人/对公/理财平台)。
  • 还款行为:还款方式(主动还款/代扣)、还款时间偏好(工作日/节假日)、还款失败次数。
  • 客服交互:进线次数、投诉内容关键词(如“失业”“生病”“周转困难”)、是否承诺还款但未履约。
行为数据预处理流程 原始日志采集 埋点·API·SDK 数据清洗 去重·异常值·缺失 特征工程 聚合·统计·衍生 行为画像 标签·评分·分群 行为数据清洗核心:剔除爬虫/机器人日志、合并重复会话、修正时间戳漂移 典型行为衍生特征 近7天登录天数 / 登录频率 (活跃度衰减信号) 还款失败次数 / 失败原因分布 (资金不足 vs 账户异常) 客服进线关键词命中次数 (失业/生病/逾期协商)

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σ的波动时,自动触发告警,排查是否数据源异常或业务环境变化。

通过系统化的数据采集与清洗,贷后预警模型才能获得高质量的输入特征,坏样本归因分析也才能得出可靠、可落地的结论。下一阶段将基于清洗后的数据,进行特征工程与归因模型构建。