3. 数据基础准备:数据源类型、清洗与质量评估
人群切片复盘的质量,90% 取决于底层数据的准确性与完整性。本章聚焦风控场景下三类核心数据源的特征、清洗方法及质量评估标准,为后续切片分析打下坚实基础。
3.1 数据源类型与特征
风控人群切片通常依赖以下三类数据源,每类数据在切片维度、时效性和覆盖度上各有差异:
| 数据源类型 | 典型字段 | 切片适用场景 | 常见问题 |
|---|---|---|---|
| 申请数据 | 身份信息、收入、职业、联系人、设备指纹 | 首贷人群分层、欺诈团伙识别 | 缺失率高、填写错误、设备篡改 |
| 行为数据 | 登录频次、浏览路径、交易金额、还款习惯 | 存量客户流失预警、额度调整 | 埋点缺失、时间窗口不统一、异常值 |
| 外部征信 | 多头借贷、逾期记录、法院执行、社保公积金 | 跨平台风险传导、黑名单匹配 | 更新延迟、数据格式不统一、授权过期 |
实战建议: 切片复盘初期优先使用申请数据 + 行为数据组合,外部征信作为交叉验证层。避免一开始就引入过多外部源导致数据对齐成本过高。
3.2 数据清洗与预处理
原始数据无法直接用于切片分析,必须经过以下标准化清洗流程:
- 缺失值处理:对关键字段(如收入、年龄)采用均值/中位数填充;对非关键字段(如备用联系人)可标记为“未知”。
- 异常值检测:使用 IQR 或 Z-score 方法识别极端值(如申请金额超过 100 万),结合业务规则判断是否剔除或截尾。
- 格式统一:日期统一为 YYYY-MM-DD,金额统一为分(整数),手机号、身份证号做脱敏处理。
- 重复记录去重:按用户 ID + 时间戳排序,保留最新一条有效记录。
- 衍生变量构造:如“近 30 天登录天数”、“多头借贷平台数”等聚合指标,提升切片区分度。
# 示例:Python 数据清洗片段
import pandas as pd
import numpy as np
# 读取原始申请数据
df = pd.read_csv('apply_data.csv')
# 缺失值处理:收入字段用中位数填充
df['income'].fillna(df['income'].median(), inplace=True)
# 异常值截尾:申请金额上限设为 99 分位数
cap = df['loan_amount'].quantile(0.99)
df['loan_amount'] = df['loan_amount'].clip(upper=cap)
# 日期格式统一
df['apply_date'] = pd.to_datetime(df['apply_date'], format='%Y%m%d')
# 衍生变量:近 7 天申请次数
df['apply_7d_count'] = df.groupby('user_id')['apply_date'].transform(
lambda x: x.diff().dt.days.le(7).cumsum()
)
常见陷阱: 清洗时不要对切片关键字段(如“是否逾期”)做全局填充,否则会引入偏差。建议按切片分组后分别处理缺失值。
3.3 数据质量评估
在进入切片分析前,必须对数据质量做量化评估。以下为风控场景的核心评估维度:
| 维度 | 指标 | 合格阈值 | 影响 |
|---|---|---|---|
| 完整性 | 字段缺失率 | < 5% | 缺失过高导致切片样本量不足 |
| 准确性 | 字段值合法率(如手机号 11 位) | > 95% | 错误数据扭曲切片分布 |
| 一致性 | 跨表字段逻辑校验(如年龄 > 0) | 100% | 逻辑矛盾导致切片定义失效 |
| 时效性 | 数据延迟天数 | < 1 天 | 延迟数据使切片复盘滞后 |
| 唯一性 | 主键重复率 | 0% | 重复记录导致切片计数翻倍 |
质量评估报告模板: 每次数据准备完成后,输出一张质量评分卡(0-100 分),低于 80 分需退回数据源方修复。评分公式 = 完整性×30% + 准确性×30% + 一致性×20% + 时效性×10% + 唯一性×10%。
3.4 数据源融合与切片对齐
三类数据源融合时,需注意以下对齐规则:
- 用户级主键:统一使用 user_id + 时间戳作为关联键,避免因手机号、身份证号变更导致匹配失败。
- 时间窗口对齐:行为数据与外部征信数据需对齐到申请时间点(T 日),避免引入未来信息。
- 切片粒度统一:所有数据源在融合后,必须按切片维度(如“近 3 个月逾期次数”)做聚合,确保每行代表一个用户的一个切片标签。
关键原则: 数据融合后必须做一次“切片一致性校验”——随机抽取 3 个切片(如“高收入-无逾期”、“低收入-有逾期”),人工核对原始数据与融合后数据是否一致。这是避免“垃圾进,垃圾出”的最后防线。