4. 数据准备与清洗:额度相关数据源介绍、数据质量检查、缺失值处理、异常值处理、数据标准化
在额度效果评估中,数据质量直接决定模型的有效性与业务决策的可靠性。本章将系统讲解额度相关数据源的类型、数据质量检查方法、缺失值与异常值处理策略,以及数据标准化技术,帮助您构建高质量的分析基础。
4.1 额度相关数据源介绍
额度效果评估涉及的数据源通常分为内部业务数据与外部征信数据两大类。下表梳理了核心数据源及其关键字段:
| 数据源类型 | 数据源名称 | 关键字段示例 | 用途 |
|---|---|---|---|
| 内部业务数据 | 客户信息表 | 客户ID、年龄、收入、职业、所在地区 | 客户画像与风险分层 |
| 内部业务数据 | 额度审批表 | 申请额度、审批额度、审批日期、审批结果 | 额度分配与通过率分析 |
| 内部业务数据 | 用信行为表 | 实际使用额度、使用时长、还款记录 | 额度使用率与还款表现 |
| 内部业务数据 | 贷后表现表 | 逾期天数、逾期金额、坏账标记 | 风险结果与额度效果评估 |
| 外部征信数据 | 央行征信报告 | 信贷历史、查询次数、负债率 | 外部信用验证 |
| 外部征信数据 | 第三方评分数据 | 芝麻分、百行分、多头借贷指数 | 补充风险判断 |
实践提示: 内部业务数据通常以关系型数据库表形式存储,建议在数据接入阶段统一字段命名规范(如使用snake_case),避免后续多表关联时出现字段名冲突。
4.2 数据质量检查
数据质量检查是数据清洗的前置步骤,主要从完整性、准确性、一致性、时效性四个维度展开。以下SVG图展示了数据质量检查的核心流程:
检查要点:
- 完整性:检查关键字段(如客户ID、审批额度)的缺失率,通常缺失率超过30%的字段需考虑剔除或重新采集。
- 准确性:验证数值字段是否在合理范围内(如额度不应为负数),日期字段格式是否统一。
- 一致性:跨表关联时,同一客户在不同表中的ID、额度值应保持一致。
- 时效性:确保数据时间窗口覆盖评估周期,避免使用过期数据。
4.3 缺失值处理
缺失值是额度数据中常见的问题,处理方式需结合业务含义与数据分布。以下是常用的缺失值处理方法对比:
| 处理方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 删除缺失记录 | 缺失率低(<5%),且缺失随机 | 简单快速,不引入偏差 | 可能损失样本量 |
| 均值/中位数填充 | 数值型字段,数据分布对称 | 保持数据分布中心 | 可能降低方差 |
| 众数填充 | 分类型字段(如地区、职业) | 保留类别分布特征 | 可能强化主导类别 |
| 前向/后向填充 | 时间序列数据(如月度用信记录) | 利用时间连续性 | 不适用于非时序数据 |
| 模型预测填充 | 缺失字段与其他字段相关性高 | 填充精度高 | 计算成本高,需避免过拟合 |
注意: 在额度效果评估中,审批额度和实际使用额度的缺失值处理需格外谨慎。若缺失原因与客户风险相关(如高风险客户未记录额度),直接删除或简单填充可能引入选择偏差,建议优先分析缺失机制(MCAR/MAR/MNAR)。
4.4 异常值处理
异常值可能源于数据录入错误、系统故障或真实的极端业务行为。以下SVG图展示了异常值检测与处理的决策路径:
异常值处理策略:
- 截尾处理:将超出上下限的值替换为边界值(如99%分位数),适用于额度分布存在长尾的情况。
- 替换为缺失:将明显错误的异常值(如负额度)先转为缺失值,再按缺失值处理流程操作。
- 直接删除:仅当异常值比例极低(<1%)且确认无业务价值时使用。
4.5 数据标准化
数据标准化用于消除不同量纲对模型的影响,尤其在额度效果评估中,额度数值(万级)与年龄(十级)等字段差异巨大,标准化后可使模型训练更稳定。以下是三种常用标准化方法:
| 方法名称 | 公式 | 输出范围 | 适用场景 |
|---|---|---|---|
| Z-Score标准化 | z = (x - μ) / σ | 均值0,标准差1 | 数据近似正态分布,适用于回归、SVM等模型 |
| Min-Max标准化 | x' = (x - min) / (max - min) | [0, 1] | 数据有明确边界,适用于神经网络、KNN |
| Robust标准化 | x' = (x - median) / IQR | 无固定范围 | 数据存在异常值,使用中位数和四分位距 |
以下代码示例展示了使用Python进行三种标准化的实现:
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler, RobustScaler
# 示例数据:额度相关字段
data = pd.DataFrame({
'credit_limit': [50000, 100000, 20000, 150000, 80000],
'age': [28, 35, 42, 31, 26],
'income': [8000, 15000, 12000, 20000, 9000]
})
# 1. Z-Score标准化
scaler_z = StandardScaler()
data_z = scaler_z.fit_transform(data)
print("Z-Score标准化结果:\n", data_z)
# 2. Min-Max标准化
scaler_mm = MinMaxScaler()
data_mm = scaler_mm.fit_transform(data)
print("\nMin-Max标准化结果:\n", data_mm)
# 3. Robust标准化
scaler_rb = RobustScaler()
data_rb = scaler_rb.fit_transform(data)
print("\nRobust标准化结果:\n", data_rb)
选择建议: 在额度效果评估中,若数据存在极端值(如超高额度的大客户),推荐使用Robust标准化,因为它对异常值不敏感,能更好地保留数据分布特征。若后续使用逻辑回归等线性模型,Z-Score标准化是更稳妥的选择。
4.6 数据清洗流程总结
综合以上内容,额度效果评估的数据准备与清洗可归纳为以下标准流程:
- 数据接入:从内部数据库与外部接口获取原始数据,统一字段命名与数据类型。
- 质量检查:从完整性、准确性、一致性、时效性四个维度生成数据质量报告。
- 缺失值处理:根据缺失率与业务含义选择删除、填充或模型预测方法。
- 异常值处理:结合统计检测与业务规则,对异常值进行截尾、替换或删除。
- 数据标准化:根据模型需求选择Z-Score、Min-Max或Robust标准化方法。
- 数据验证:清洗后再次检查数据分布与字段逻辑,确保清洗效果符合预期。
关键提醒: 数据清洗策略应在评估开始前预先定义并文档化,避免在分析过程中反复调整清洗规则导致结果不可复现。建议每次清洗操作都保留原始数据备份,以便追溯与对比。