3. 数据理解:贷后数据集字段说明
在构建贷后预警延迟尖峰预测模型之前,必须对原始数据集进行深入理解。本案例所使用的贷后数据集包含客户还款行为、逾期状态、时间序列特征及外部环境信息。以下是对核心字段的详细说明,帮助您快速建立对数据结构的全局认知。
3.1 核心字段总览
数据集共包含 18 个原始字段,按业务含义可分为四类:客户标识、逾期与还款行为、时间戳与预警、外部衍生特征。下表列出了所有字段的名称、类型及业务含义。
| 字段名称 | 数据类型 | 业务含义 | 示例值 |
|---|---|---|---|
customer_id |
字符串 | 客户唯一标识,脱敏处理 | CUST_100234 |
overdue_days |
整数 | 当前逾期天数,0 表示正常 | 15 |
repayment_amount |
浮点数 | 最近一期实际还款金额(元) | 3200.50 |
due_amount |
浮点数 | 当期应还总额(元) | 5000.00 |
alert_timestamp |
时间戳 | 预警信号触发时间(精确到秒) | 2024-03-15 14:30:00 |
delay_peak_flag |
布尔/整数 | 是否发生延迟尖峰(目标变量) | 1 |
last_payment_date |
日期 | 最近一次还款日期 | 2024-03-10 |
contract_start_date |
日期 | 贷款合同起始日期 | 2023-06-01 |
loan_term |
整数 | 贷款期限(月) | 12 |
credit_score |
整数 | 客户征信评分(300-850) | 680 |
total_arrears |
浮点数 | 累计欠款总额(元) | 12500.00 |
contact_count_7d |
整数 | 过去7天催收联系次数 | 3 |
promise_payment |
浮点数 | 客户承诺还款金额(元) | 2000.00 |
is_weekend |
布尔 | 预警时间是否为周末 | True |
hour_of_day |
整数 | 预警时间的小时数(0-23) | 22 |
region_code |
字符串 | 客户所在地区编码 | R_EAST |
product_type |
字符串 | 贷款产品类型 | 消费贷 |
data_source |
字符串 | 数据采集渠道标识 | APP |
字段理解要点: 目标变量
delay_peak_flag 是二分类标签,1 表示在预警时间窗口内发生了还款延迟的突然尖峰(通常定义为逾期天数较前一日增加超过 30 天或还款金额骤降超过 50%)。该字段是 XGBoost 模型预测的核心输出。
3.2 关键字段业务逻辑详解
部分字段之间存在强关联性,理解其业务逻辑有助于后续特征工程。以下重点解析三个关键字段组合。
3.2.1 逾期天数与还款金额的联动
- 逾期天数(overdue_days):反映客户当前的违约深度。通常 1-30 天为早期逾期,31-90 天为中期,超过 90 天为严重逾期。
- 还款金额(repayment_amount):与应还金额(due_amount)对比可计算 还款覆盖率(repayment_amount / due_amount)。覆盖率低于 0.3 时,延迟尖峰风险显著上升。
- 累计欠款(total_arrears):包含本金、利息及罚息,是衡量客户负债压力的核心指标。
3.2.2 预警时间戳的衍生价值
- alert_timestamp 可拆解出年、月、日、星期、小时等时间特征。
- is_weekend 和 hour_of_day 是直接从时间戳衍生的预计算字段,用于捕捉非工作时间还款行为模式。
- 历史数据显示,22:00-02:00 时段触发的预警,延迟尖峰概率比白天高 1.8 倍。
3.2.3 催收行为与承诺还款
- contact_count_7d:过去 7 天的催收联系次数。次数过高(>5 次)往往意味着客户已失联或拒绝沟通,是延迟尖峰的强信号。
- promise_payment:客户口头承诺的还款金额。若承诺金额低于应还金额的 50%,且后续未兑现,则尖峰概率急剧上升。
3.3 字段关系与数据流架构
下图展示了贷后预警数据集的核心字段如何从原始数据源流向特征工程,并最终输入 XGBoost 模型。该架构帮助理解字段之间的层级依赖关系。
3.4 字段缺失与异常值处理策略
在数据理解阶段,必须识别字段的缺失模式与异常分布。下表总结了各字段的缺失率及处理建议。
| 字段名称 | 缺失率 | 异常值特征 | 处理策略 |
|---|---|---|---|
promise_payment |
12.3% | 负值或大于 10 倍应还金额 | 缺失填充为 0;异常值截断至 [0, due_amount*2] |
contact_count_7d |
5.1% | 大于 50 次(数据录入错误) | 中位数填充;异常值替换为 99 分位数 |
credit_score |
2.8% | 小于 300 或大于 850 | 按产品类型分组均值填充;异常值设为边界值 |
repayment_amount |
0.5% | 负值 | 取绝对值;若仍为 0 则填充为 0 |
alert_timestamp |
0.0% | 未来时间戳(超过采集日期) | 替换为采集日期当天 23:59:59 |
注意:
promise_payment 字段缺失率超过 10%,直接删除会导致样本量损失。建议在特征工程中增加一个布尔特征 has_promise 来标记是否缺失,以保留缺失模式中的信息。
3.5 字段分布快速统计
为帮助后续建模时选择特征缩放方法,下表列出关键数值字段的分布统计量(基于训练集)。
| 字段 | 均值 | 标准差 | 最小值 | 25% 分位 | 中位数 | 75% 分位 | 最大值 |
|---|---|---|---|---|---|---|---|
overdue_days |
22.4 | 35.1 | 0 | 3 | 12 | 28 | 180 |
repayment_amount |
2840.5 | 4100.2 | 0 | 500.0 | 1500.0 | 3800.0 | 50000.0 |
total_arrears |
8750.3 | 12000.7 | 0 | 1200.0 | 4500.0 | 11000.0 | 150000.0 |
credit_score |
620.0 | 85.0 | 300 | 560 | 630 | 690 | 850 |
从分布可以看出,overdue_days 和 total_arrears 呈右偏分布,后续建模时建议进行 对数变换 或使用 分箱 处理,以降低极端值对 XGBoost 树分裂的影响。
3.6 字段选择与建模优先级
基于业务经验与初步单变量分析,将字段按预测能力分为三个优先级,指导后续特征筛选。
建模建议: 高优先级字段应全部保留;中优先级字段需结合特征重要性排序决定是否保留;低优先级字段(如
region_code、product_type)建议先进行目标编码或计数编码后再决定是否加入模型,避免引入过多稀疏类别。