今天我们来聊聊数据准备中的数据清洗。

其实数据清洗这四个字对于常常做数据分析建模的同学们一定不陌生,不管在实际工作中有没有真正做清洗,我们都会先把这个口号喊出来,数据清洗这块其实我也一直不太愿意拿出来说,因为这种活实在太结合业务理解了,而且还见仁见智,并不是简简单单的三步——缺失值填补、异常值删除、错误值处理。但是做数据建模呢,也不能跳过这步,那我就从操作手法和操作目的两个方面来聊聊我认为怎么做数据清洗。

缺失值

数据缺失引起的原因多种多样,大致可以概括为IT系统原因、前端录入原因和接入征信公司原因。

对于IT系统缺陷导致的数据缺失,在你无能为力的时候请尽快联系IT人员。

对于前端录入数据的缺失,通过逻辑匹配方式可以选择不同手段去填补。

对于接入征信公司原因导致某些第三方数据字段有缺失,那我们要理解这个缺失值的内在含义,有些情况的缺失我们是不能去填补的,就作为missing存在。

在做缺失值填补前,同学们应该先看看有哪些字段是缺失的,缺失比例如何,是否对我们业务和模型有作用。如果这些缺失字段是不必要的,那我们没有必要花功夫去填补它们。

具体操作手法:

1.1 筛选出缺失的数据

google或者baidu上能找到很多关于查找缺失值的小代码,大部分筛选逻辑按照数据类型做分类筛选,运用数组和do循环,具体代码我就不展示在文章里了。黑猫白猫能抓住老鼠的就是好猫。

1.2 查看缺失比例,判断是否必要

对筛选出缺失数据字段的missing数据集,通过观察缺失比例和建模产品的逾期率去判断是否有必要做缺失值填补。

比如,建模产品的逾期率比较高,也就是建模样本里的坏样本比较多,变量分箱的目的是更希望将坏样本分到一个组里,这个时候一个分箱变量的缺失率很高,不论是做特征值替换、线性插值、逻辑匹配填补或者作为MISSING处理,都容易造成分箱组里sample的极端分布不均,这个时候如果你做并组,会造成分箱区分度下降,如果你不做并组,这个分箱变量会有不稳定的潜在隐患。

所以,对于逾期率高的产品建模,缺失比例高的话就不建议进入模型,同比,对于逾期率低的建模产品,缺失率的容忍度就好了很多,具体这个balance的线在哪里,我只能给个我的感觉范围:

如果逾期率大约40%以上,可接受的缺失比例在15%以下;

如果逾期率大约8%以下,可接受的缺失比例在70%以下;

更严谨的做法是每次建模时候根据我上面的逻辑去校验样本可接受缺失比例的balance point,然后判断哪些字段是需要继续操作,哪些字段可以直接舍弃。

1.3 是否进行缺失值填补

通过第二步我们已经知道哪些字段是可以继续操作下去的,这个时候我们就要选择用什么方法去对缺失数据处理。

统计学上的缺失值处理常用手法有特征值(mean/median…)替换、线性插值等,但实际建模中更常用的是结合业务逻辑匹配,或者作为MISSING不做处理。

举个前面系列文章的例子,如果我们分析产品的业务线前端采集到了用户的身份证照片,这个照片不仅仅可以用来ORC活体检测,身份证里的信息数据可以进行逻辑匹配填补诸如常住地、性别、年龄等这些因为前段录入操作原因造成的数据缺失。

比如我们的age这个字段有数据缺失,但是缺失比例是我们可接受范围内,此时我们就可以通过身份证号的编码规则来推断匹配这个申请客户的年龄,通过这种匹配方法填补的缺失值往往更加能反应客户的真实信息。

对于接入不同征信公司造成的某些关键字段的数据缺失,同样缺失比例是我们可接受范围内,这个时候就需要参考这个字段的衍生逻辑来选择用什么方法来填补,更多的做法是不做缺失值填补,作为MISSING单独一组。

好啦,关于缺失值的数据清洗我根据个人理解简单的总结到这里,如有异议可留言讨论。还是概要为一句话:

数据清洗缺失值,保证比例选逻辑

更多金融风控知识,请关注【金融科技应用学苑】公众号

【金融申请评分卡】数据准备 - 缺失值数据清洗相关推荐

  1. 金融申请评分卡(2)

    金融申请评分卡的数据预处理和特征衍生 1.模型处理的一般流程 以上为模型的一般处理办法:在本次数据字段有: 字段 名称 member_id ID loan_amnt 申请额度 term 产品期限 in ...

  2. 金融申请评分卡(3)

    金融申请评分卡样例及代码 数据文件中的所有对应的字段,在金融申请评分卡(2)均有解释,数据的下载链接为百度网盘:链接:https://pan.baidu.com/s/1qZXmYgW 密码:r6o5 ...

  3. 【金融申请评分卡】数据准备 - 造衍生变量

    评分卡开发在数据整理好之后,我们的重点工作就是创造衍生变量了! 造衍生变量是整个开发评分卡模型过程中最重要.最艰辛也最有趣的一个节点.最重要是因为衍生变量的好坏往往会影响评分卡模型的各种测评指标,决定 ...

  4. 【金融申请评分卡】目标变量界定

    一.目标变量是什么? 目标变量就是假定申请客户的好坏,逻辑回归公式里的Y,先来看下逻辑回归公式 y=11+e−zy=11+e−z y=\frac{1}{1+e^{-z}}\qquad z=a1x1+a ...

  5. 机器学习之金融信贷风控(一)互联网金融业申请评分卡的介绍

    金融信贷风控中的机器学习 在信贷风控领域,随着大数据.计算机集群技术.网络技术和人工智能的发展,越来越多的金融机构将传统的策略风控手段转向依赖机器学习模型等量化手段.信贷环节中的审批.预警.催收以及营 ...

  6. 金融风控--申请评分卡模型--特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融风

    金融风控-->申请评分卡模型-->特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融 ...

  7. 机器学习之金融信贷风控(二)申请评分卡中的数据预处理和特征衍生(未完待续)

    申请评分卡中的数据预处理和特征衍生 模型处理的一般流程: 构建信用风险模型的特征 获取数据 链接:https://pan.baidu.com/s/1CsY11ArZ6YK3o1icghWj2w 提取码 ...

  8. 金融风控-申请评分卡模型-申请评分卡介绍

    从这篇博文开始,我将总结金融风控中的另外一个模型:申请评分卡模型.这篇博文将主要来介绍申请评分卡的一些基本概念. 本篇博文将以以下四个主题来进行介绍说明: 信用风险和评分卡模型的基本概念 申请评分卡在 ...

  9. 申请评分卡模型数据预处理

    一.获取数据 2.1 数据获取 数据的获取途径主要有两个: 金融机构自身字段:例用户的年龄,户籍,性别,收入,负债比,在本机构的借款和还款行为等: 第三方机构的数据:如用户在其他机构的借贷行为,用户的 ...

最新文章

  1. 树莓派c语言输出pwm波,树莓派硬件PWM输出程序
  2. Oracle笔记----oracle数字类型number自增
  3. node.js搭建简单服务器,用于前端测试websocket链接方法和性能测试
  4. 位运算和时间复杂度的分析
  5. 使用MONGODB 集群的OPLOG 日志进行数据恢复
  6. python flask web开发 可视化开发_python web开发之——Flask入门教程
  7. 一个简易的数字输入框组件
  8. MySQL常见故障处理手册_转
  9. python中path的用法_python中pathlib模块的基本用法与总结
  10. 史上最详细的vsftpd配置文件讲解
  11. easywechat 网页授权登录
  12. 【FPGA】超声波测距
  13. html中output标签详细介绍
  14. python面试题-如“上海 深圳 深圳 上海“,要求输入一个匹配模式,比如: aabb,判断是否符合
  15. ZZNU2141: 2333
  16. Win10极简fliqlo时钟屏保(附下载链和安装教程)
  17. Eagle设计师必备利器管理工具
  18. 数据库高并发的解决方案
  19. python培训中心-python培训中心
  20. 基于truffle-contract库之solidity事件与合约调用完整案例!

热门文章

  1. poj java 输入超时_Java:如何实现代码超时功能?
  2. 关于投篮的数学建模模型_数学建模 投篮命中率的数学模型
  3. java多线程生产者与消费者案例_多线程操作实例——生产者与消费者
  4. 渗透攻击exp共享站点
  5. mysql启动命令指定data目录_CentOS 7下MySQL的data目录更改后,使用mysqld服务启动失败...
  6. 【云周刊】第120期:麒麟来了!PUE逼近1.0,阿里展示液冷黑科技
  7. window下zookeeper的下载启动和报错等问题
  8. RDMA over TCP的协议栈工作过程浅析
  9. mybatis报错(三)报错Result Maps collection does not contain value for java.lang.Integer解决方法...
  10. Unity5 新功能解析--物理渲染与standard shader