4. 数据采集与预处理:数据源识别、数据清洗、缺失值处理、异常值检测

做风控模型,圈内有个共识:数据质量决定了模型的天花板。算法再牛,喂进去的是垃圾,出来的还是垃圾。我见过太多团队花三个月调参,结果回头一看,原始数据里有一半是空值——那真是白忙活。

这一章,咱们就聊聊数据预处理那些绕不开的坑。说白了,就是怎么把脏活累活干漂亮。

4.1 数据源识别:你得知道你的数据从哪来

做风控预警,数据源五花八门。我个人习惯,第一步先画一张数据地图。你想想看,连数据源头都搞不清,后面清洗、建模全是空中楼阁。

常见的风控数据源,我归纳成三类:

  • 内部业务数据:交易流水、用户画像、历史逾期记录。这些最可靠,但往往分散在不同部门。
  • 外部征信数据:央行征信、百行征信、多头借贷记录。嗯,这里要注意,外部数据接口调用有延迟,别等模型跑完了才发现数据是昨天的。
  • 行为日志数据:登录频次、操作路径、设备指纹。这类数据量大,但噪声也大。

我在项目中遇到过一件事:某次做企业贷预警,业务方说数据源是“实时接口”。结果上线后才发现,接口每天凌晨才更新一次。那天的预警模型,整整晚了12个小时。所以啊,数据源的时效性,比数据量更重要

4.2 数据清洗:把脏数据挡在门外

数据清洗,说白了就是“去伪存真”。我见过最离谱的案例:某个字段“年龄”居然出现了-999和888。你猜怎么着?那是系统用-999表示“未知”,用888表示“企业用户”。这种编码规则,如果不提前清洗,模型直接学歪。

清洗的常规操作,我列个清单:

  • 格式统一:日期格式、电话号码、身份证号,必须标准化。比如“2024-01-01”和“2024/01/01”不能混着来。
  • 去重:同一个用户出现多条记录,保留最新一条还是合并?我建议按业务场景定规则,别一刀切。
  • 逻辑校验:比如“放款日期”早于“申请日期”,这种明显矛盾的数据,直接标记为异常。
  • 字段拆分:有些系统把“地址”塞在一个字段里,你得拆成省、市、区三级。不然模型没法用。
核心原则:清洗不是删数据,而是给数据打标签。保留原始字段,新增清洗后的字段。这样万一规则错了,还能回滚。

4.3 缺失值处理:别让空值毁了你的模型

缺失值,是风控数据里的常客。为什么会有缺失?原因很多:用户没填、系统没采集、接口超时。但不管原因是什么,模型不认识“空值”。

处理缺失值,我一般分三步走:

  1. 诊断缺失模式:是随机缺失?还是系统缺失?比如“收入”字段,高收入人群往往不填,这就不是随机缺失。
  2. 选择填充策略
    • 均值/中位数填充:适合连续变量,但会降低方差。
    • 众数填充:适合分类变量,比如“性别”缺失,填“未知”类。
    • 模型预测填充:用其他字段预测缺失值。我常用随机森林做填充,效果不错。
    • 不填充:如果缺失率超过70%,我建议直接删除该字段。
  3. 生成缺失指示变量:新增一列“是否缺失”,让模型自己学缺失模式。这个技巧,我屡试不爽。
避坑指南:我曾经用0填充所有缺失值,结果模型学出来一个“收入为0就是高风险”的规律。后来一查,那些“收入为0”的用户,其实只是没填。所以,填充值一定要有业务含义

4.4 异常值检测:揪出那些“不寻常”的数据点

异常值,就是数据里的“害群之马”。一个极端值,可能把整个模型的均值拉偏。做风控预警,异常值往往意味着欺诈、操作失误或者系统故障。

检测异常值,我常用的方法有四种:

方法 适用场景 我的经验
3σ原则 正态分布的数据 简单粗暴,但遇到偏态分布就失效
箱线图(IQR) 任意分布 我最常用,鲁棒性好
Z-Score 标准化后的数据 适合多维度联合检测
孤立森林 高维数据 计算快,但解释性差

举个例子。某次做信用卡交易预警,我用箱线图检测“单笔交易金额”。正常交易在100-5000元之间,但有个账户连续10笔交易都是99999元。箱线图一跑,这些点全在上下边界之外。后来一查,果然是盗刷。

注意:异常值不一定要删除。有些异常值本身就是信号。比如“频繁更换设备”这个特征,对欺诈模型来说,就是强变量。我建议先标记,再决定是删除、修正还是保留。

4.5 知识体系总览

说了这么多,我画了一张图,把数据采集与预处理的整个流程串起来。你一看就明白:

数据采集与预处理流程 数据源识别 数据清洗 缺失值处理 异常值检测 数据标准化 特征工程 模型训练 预警输出 监控反馈 反馈回路:持续优化 内部数据 外部数据 格式统一 逻辑校验 均值填充 模型预测

这张图把整个流程串起来了。你看,数据源识别是起点,然后经过清洗、缺失值处理、异常值检测,最后才进入特征工程和模型训练。而且别忘了,预警输出之后还要监控反馈,形成一个闭环。我每次做项目,都会把这张图贴在墙上,提醒自己别漏了哪一步。

我的习惯:预处理阶段,我会写一个数据质量报告。报告里包含每个字段的缺失率、异常值比例、分布直方图。这样跟业务方沟通时,有理有据,他们也能理解为什么模型效果不好。

好了,数据采集与预处理就聊到这儿。记住一句话:预处理花的时间,会在模型效果上加倍还给你。别急着调参,先把数据洗干净。


专注资料整理