3. 数据准备与探索:数据源介绍、数据清洗、缺失值处理、异常值检测

各位同学,咱们直接进入正题。评分模型这东西,说白了就是“垃圾进,垃圾出”。你模型再牛,数据一塌糊涂,结果肯定没法看。我做了这么多年风控,见过太多项目死在了数据准备这一步。今天这一章,我就把压箱底的经验掏出来,跟你聊聊数据到底该怎么整。

3.1 数据源介绍:你的模型吃什么粮?

汽车金融的数据源,其实就三大类。我习惯把它们比作“三驾马车”,缺一不可。

  • 内部业务数据:这是咱们的“自留地”。包括客户申请表信息(年龄、职业、收入)、车辆信息(车型、车价、贷款金额)、还款记录(逾期天数、期数)。嗯,这里要注意,内部数据往往最干净,但也最“偏科”。
  • 外部征信数据:这是“借来的眼睛”。比如央行征信报告、百行征信、同盾等第三方数据。我记得有一次,一个客户内部数据看着挺好,一查征信,好家伙,连三累六。所以这块必须接。
  • 第三方补充数据:比如运营商数据(通话时长、夜间活跃度)、黑名单库、多头借贷数据。这些数据能帮你看到客户“看不见的那一面”。

核心观点:不要只依赖单一数据源。我见过最惨的案例,就是只用内部数据做模型,结果市场一波动,模型直接崩了。数据源越多元,模型抗风险能力越强。

3.2 数据清洗:把脏东西筛出去

数据清洗,说白了就是“去伪存真”。你想想看,原始数据里什么妖魔鬼怪都有。我刚开始做这行时,就吃过一次大亏——模型跑出来效果奇好,结果一查,是因为数据里混了重复的测试样本。

常见的清洗动作,我列了个清单:

  1. 去重:同一个客户申请了两次,只保留一条。我习惯用客户ID+申请时间做唯一键。
  2. 格式统一:比如手机号,有的带86,有的不带。必须统一成11位纯数字。
  3. 逻辑校验:年龄不能小于18岁,贷款金额不能大于车价。这些是硬规则,不满足的直接剔除。
  4. 字段拆分:比如“居住地址”这个字段,我建议拆成省份、城市、区县。这样后面做特征工程会方便很多。

我的小技巧:清洗完数据后,一定要做一次“数据快照”。就是把清洗前后的数据量、关键字段的分布打印出来对比一下。我曾经靠这个发现了一个数据源接口的bug,帮公司省了不少钱。

3.3 缺失值处理:别让“不知道”毁了模型

缺失值,是风控建模里最头疼的问题之一。为什么?因为缺失本身可能就包含信息。比如一个客户故意不填“单位电话”,这本身就是一个风险信号。

我个人处理缺失值的策略,分三步走:

  • 第一步:看缺失率。如果某个字段缺失超过70%,我建议直接扔掉。别心疼,留着也是噪音。
  • 第二步:看缺失模式。是随机缺失,还是非随机缺失?比如高收入人群更倾向于不填收入,这就是非随机缺失。这种情况,我会单独生成一个“是否缺失”的哑变量。
  • 第三步:填充。常用的方法有均值填充、中位数填充、模型预测填充。我个人的经验是,对于风控模型,用中位数填充比均值更稳健。因为均值容易被极端值拉偏。

避坑指南:我曾经犯过一个错误——用全量数据的均值去填充训练集和测试集。结果导致数据泄露,模型在测试集上表现虚高。正确的做法是:只用训练集的统计量去填充测试集。

3.4 异常值检测:揪出那些“不老实”的数据

异常值,就是数据里的“刺头”。比如一个客户年收入填了1个亿,或者年龄填了150岁。这些数据如果不处理,模型会被它们带偏。

我常用的检测方法有:

方法 适用场景 我的经验
3σ原则 数据近似正态分布 适合处理贷款金额、年龄等字段
箱线图法 数据分布偏态严重 我更喜欢用这个,因为它不受极端值影响
业务规则法 有明确业务逻辑 比如“首付比例不能为0”,这是硬规则

处理异常值,我一般不是直接删除。而是先看它是不是“真异常”。比如一个客户贷款买豪车,收入高是合理的。我会用分位数截断法,把超过99.5%分位数的值替换成99.5%分位数的值。这样既保留了样本,又削弱了极端影响。

一句话总结:异常值检测不是“一刀切”,而是“具体情况具体分析”。你想想看,一个真正的坏客户,他的数据可能处处是“异常”,但恰恰这些异常才是模型要学习的信号。

3.5 本章知识体系总览

下面这张图,是我自己梳理的数据准备与探索的完整流程。你可以把它当作一个检查清单,每次做项目前对照着走一遍。

数据准备与探索核心流程 数据源 数据清洗 缺失值处理 异常值检测 特征工程 评分模型建模 子流程 内部业务数据 外部征信数据 第三方补充数据 常用方法 3σ原则 / 箱线图法 分位数截断 / 业务规则 注:数据准备是建模的基础,每一步都直接影响最终模型效果

这张图把整个流程串起来了。从数据源开始,经过清洗、缺失值处理、异常值检测,最后才进入特征工程和建模。每一步都有坑,但只要你按这个流程走,至少能避开80%的常见问题。

最后说一句:数据准备没有“标准答案”,只有“最佳实践”。我做了这么多年,每次项目的数据情况都不一样。但核心原则就一个——理解你的数据,比理解你的模型更重要

专注资料整理