4、数据基础与特征工程:数据来源、数据清洗、缺失值处理、特征构造与选择
AI信贷审批系统的预测能力,本质上取决于输入数据的质量与特征表达的有效性。在模型算法日趋同质化的今天,数据基础与特征工程往往决定了风控模型的上限。本章将围绕信贷审批场景,系统讲解数据来源的合规接入与分类、数据清洗的标准化流程、缺失值处理的策略选择,以及特征构造与筛选的工程方法,帮助学员建立从原始数据到可用特征集的完整链路认知。
4.1 数据来源:三类核心数据源与合规边界
核心原理:信贷审批模型所需数据可归纳为三大类:征信数据(人行征信报告、百行征信、朴道征信)、行为数据(借款人在本平台的借贷行为、还款记录、APP操作轨迹)、第三方数据(同盾、芝麻信用、运营商数据、司法涉诉信息等)。三类数据在时效性、覆盖度、合规要求上差异显著,建模前必须明确数据字典与授权链路。
| 数据类别 | 典型字段 | 更新频率 | 合规要点 | 建模价值 |
|---|---|---|---|---|
| 人行征信 | 信贷记录、逾期明细、查询次数 | 月度 | 需用户授权,仅用于合法信贷决策 | 强变量,区分度最高 |
| 行为数据 | 借款频次、提前还款、额度使用率 | 实时/日级 | 隐私政策明确告知 | 反映真实资金需求与还款意愿 |
| 第三方数据 | 多头借贷、黑名单、欺诈分 | 日级/周级 | 数据源需持牌,接口调用留痕 | 补充征信白户与反欺诈 |
操作流程:数据接入需遵循“最小必要”原则。第一步,由法务与风控共同确认数据源资质;第二步,技术团队通过API或文件接口对接,并建立字段映射表;第三步,每日数据质量校验(记录数、空值率、延迟时间);第四步,数据落库后加密存储,访问权限按角色隔离。
4.2 数据清洗:从原始数据到可用样本
判断方法:数据清洗的目标是消除“脏数据”对模型的干扰。常见问题包括:字段格式不统一(如手机号带区号)、重复记录(同一客户多笔申请)、逻辑矛盾(年龄5岁但职业为“高级工程师”)、异常极端值(月收入1000万)。清洗流程应形成标准化脚本,每次建模前自动执行。
# 典型清洗逻辑(Python伪代码)
def clean_data(df):
# 1. 去重:按客户ID+申请时间排序,保留最新一条
df = df.sort_values('apply_time').drop_duplicates('customer_id', keep='last')
# 2. 格式统一:手机号去空格、补0
df['mobile'] = df['mobile'].str.replace(r'\D', '', regex=True)
# 3. 逻辑校验:年龄在18-70岁之间,否则置为缺失
df.loc[(df['age'] < 18) | (df['age'] > 70), 'age'] = np.nan
# 4. 极端值截断:收入超过99.9%分位数时,用分位数替换
cap = df['income'].quantile(0.999)
df['income'] = df['income'].clip(upper=cap)
return df
案例拆解:某消费金融平台在建模时发现“工作单位”字段存在大量同一公司不同写法(如“腾讯科技”与“深圳市腾讯计算机系统有限公司”)。通过文本相似度匹配与人工审核,将3000余个变体归并为800个标准企业名称,并进一步映射到行业分类。这一清洗动作使“所在行业”这一特征的IV值从0.02提升至0.11,模型AUC提升约1.5%。
4.3 缺失值处理:策略选择与工程实现
核心原理:缺失值处理需区分随机缺失与非随机缺失。在信贷场景中,某些字段缺失本身即包含信息——例如“征信查询次数”缺失可能意味着客户从未申请过信贷,属于“白户”,此时缺失不是噪声而是信号。因此,处理策略不能一刀切。
- 删除缺失率过高的字段:当字段缺失率超过70%且业务解释性弱时,直接剔除。
- 统计填充:对于连续变量(如收入),用中位数或分位数填充;对于分类变量(如学历),用众数填充。
- 模型预测填充:利用其他字段构建回归或分类模型预测缺失值,适用于缺失率在20%-50%且与其他字段相关性较强的场景。
- 缺失指示变量:单独生成一列“是否缺失”作为新特征,保留缺失本身的信息价值。
4.4 特征构造与选择:从原始字段到高区分度变量
操作流程:特征构造的核心是结合业务逻辑生成具有信贷含义的衍生变量。常见方法包括:比率类(月还款额/月收入)、聚合类(近3个月申请次数、近6个月逾期天数总和)、趋势类(额度使用率环比变化)、文本类(职业关键词编码)。特征选择则通过IV值、随机森林重要性、LASSO回归等方法筛选。
| 特征类型 | 构造示例 | 业务含义 | IV值参考 |
|---|---|---|---|
| 负债比率 | 总负债 / 年收入 | 偿债压力 | 0.3-0.5(强) |
| 行为频次 | 近30天借款申请次数 | 资金饥渴度 | 0.2-0.4(中强) |
| 时序趋势 | 近3月平均额度使用率 - 近6月平均 | 资金紧张趋势 | 0.1-0.3(中) |
| 交叉特征 | 年龄 × 是否房贷客户 | 生命周期阶段 | 0.05-0.15(弱-中) |
案例拆解(完整闭环):某互联网银行在开发小微企业主经营贷模型时,初始仅使用征信报告中的“贷款余额”和“逾期次数”两个字段,模型KS值仅0.23。分析发现,小微企业主个人征信与经营状况关联度不足。团队随后引入以下特征:① 企业开票数据(近12个月开票金额趋势);② 个人结算账户流水(季度日均存款、大额进出频率);③ 关联企业数量及对外投资变化。经过特征构造后,新增“开票金额同比变化率”和“结算账户季度净流入”两个变量,KS值提升至0.38。但同时也发现“对外投资次数”特征在训练集上IV值很高,但在验证集上PSI超过0.25,稳定性不足,最终予以剔除。整个调优过程耗时3周,模型最终上线后坏账率较旧模型下降18%。
4.5 常见误区与复盘要点
- 误区一:盲目追求数据量大,忽视数据质量。实际中,10个高质量特征往往优于100个噪声特征。
- 误区二:缺失值全部用均值填充,抹杀了“缺失”本身的业务含义。应优先考虑缺失指示变量。
- 误区三:特征选择只看IV值,忽略特征之间的多重共线性。高相关特征会导致模型系数不稳定。
- 误区四:训练集与推理集的特征口径不一致。例如训练时用“近3个月查询次数”,上线时数据源只能提供“近1个月”,导致特征分布偏移。
总结复盘:数据基础与特征工程是AI信贷审批系统的“地基工程”。建议团队建立特征仓库,对每个特征记录其来源、清洗逻辑、缺失率、IV值、PSI趋势和上线版本。每次模型迭代时,先对比新旧特征集的性能差异,再决定是否引入新变量。同时,保持与业务部门的定期沟通,确保特征构造方向与信贷策略(如客群下沉、额度调整)保持一致。最终,一个稳健的特征体系应具备:来源合规、口径清晰、缺失可控、区分度与稳定性兼备、可解释性强五大特征。