前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
python免费学习资料以及群交流解答点击即可加入
通过举办方提供的用户基本信息,消费行为,还款情况等,建立准确的逾期预测模型,以预测用户是否会逾期还款。
二、数据解读
相关专业名词可以去举办方融360官网上搜索https://www.rong360.com/ask/
1.数据概述:
用户的基本属性user_info.txt
银行流水记录bank_detail.txt
用户浏览行为browse_history.txt
信用卡账单记录bill_detail.txt
放款时间loan_time.txt
逾期行为的记录overdue.txt
(注意:并非每一位用户都有非常完整的记录,如有些用户并没有信用卡账单记录,有些用户却没有银行流水记录。同时需要注意的是数据做过脱敏处理:(a) 隐藏了用户的id信息;(b) 将用户属性信息全部数字化;(c) 将时间戳和所有金额的值都做了函数变换。)
2.数据详细描述:
(1)用户的基本属性user_info.txt。共6个字段,其中字段性别为0表示性别未知。 用户id,性别,职业,教育程度,婚姻状态,户口类型 6346,1,2,4,4,2
(2)银行流水记录bank_detail.txt。共5个字段,其中,第2个字段,时间戳为0表示时间未知;第3个字段,交易类型有两个值,1表示支出、0表示收入;第5个字段,工资收入标记为1时,表示工资收入。 用户id,时间戳,交易类型,交易金额,工资收入标记 6951,5894316387,0,13.756664,0
(3)用户浏览行为browse_history.txt。共4个字段。其中,第2个字段,时间戳为0表示时间未知。 用户id,时间戳,浏览行为数据,浏览子行为编号 34724,5926003545,172,1
(4)信用卡账单记录bill_detail.txt。共15个字段,其中,第2个字段,时间戳为0表示时间未知。为方便浏览,字段以表格的形式给出。 文件示例如下: 用户id,账单时间戳,银行id,上期账单金额,上期还款金额,信用卡额度,本期账单余额,本期账单最低还款额,消费笔数,本期账单金额,调整金额,循环利息,可用金额,预借现金额度,还款状态 3147,5906744363,6,18.626118,18.661937,20.664418,18.905766,17.847133,1,0.000000,0.000000,0.000000,0.000000,19.971271,0 上期账单金额: 上月需要向信用卡还款的金额 上期还款金额:上月用户已还款的金额 信用卡额度:信用额度(即信用卡最高可以透支使用的限额)+ 存入信用卡的金额。 本期账单余额:指截止到出账单日,本期账单还未还的金额。 本期账单最低还款额:最低还款额=信用额度内消费款的10%+预借现金交易款的100%+前期最低还款额未还部分的100%+超过信用额度消费款的100%+费用和利息的100% 消费笔数:用户在账单期内的消费记录总数 本期账单金额:本期需要向信用卡还款的金额 调整金额:有可能是原先多还的款项, 在下期还款时会去掉这部分的金额 循环利息:当您偿还的金额等于或高于当期帐单的最低还款额,但低于本期应还金额时,剩余的延后还款的金额银行会计算相应的利息。 可用余额:信用额度-未还清的已出账金额-已使用未入账的累积金额 预借现金额度:是指持卡人使用信用卡通过ATM等自助终端提取现金的最高额度 还款状态:0--未还款,1--已还款
(5)放款时间信息loan_time.txt。共2个字段,用户id和放款时间。 用户id,放款时间 1,5914855887 银行发放贷款的时间
(6)顾客是否发生逾期行为的记录overdue.txt。共2个字段。样本标签为1,表示逾期30天以上;样本标签为0,表示逾期10天以内。注意:逾期10天~30天之内的用户,并不在此问题考虑的范围内。用于测试的用户,只提供id列表,文件名为testUsers.csv。 用户id,样本标签 1,1 此处可理解为1是逾期、0是未逾期
三、数据预处理
导入数据,检查缺失,统计用户id量、
看下缺失值情况:
没有缺失,再看用户id情况:
有9294个用户有银行流水记录
同理导入其他表格信息:
看下,个表格的用户id数:
各个表格的id数不一样,说明并非每个用户都有银行卡流水,账单等信息;所以下一步就是整合6张表格,然后根据共有用户id匹配完整信息,没有完整信息的id去掉。
说明:我们要预测的测试集是没有放款的客户,因此训练集分析使用客户放款之前的信息,将有时间截的表与放款表交叉,只筛选放款前的客户id
通过上面各个表的信息情况,可以看到除了放款时间表外有时间字段的是银行流水记录表、账单记录表、浏览信息表。
time_x表示流水记录时间,time_y表示放款时间:
去重客户数:
9271个客户
同理其他表格也做此处理:
得出5735个用户的记录是完整的。然后通过这5735个id筛选每张表的记录,并进行字段预处理。
数据预处理:
(1)银行流水表:整理收入,支出,工资:
把收入支出工资分别与用户表交叉(只筛选5735个完整用户的信息):
把收入支出工资整合到一个表里(注意此处是左链接how='left'):
(2)浏览表:先剔除5735以外的数据,再统计每个用户的浏览记录(count)
统计浏览条数(count):
(3)账单表:
去掉了时间、银行id、还款状态这几个变量,按用户id分组后对每个字段均值化处理
(4)逾期表,用户表:
直接匹配5735个最终用户即可
把前面整理好的表整合:
查看最后表信息:
一共有25个字段
四、特征工程
(1)基于业务理解筛选
主要看相关性
对特征做一下分类:
首先看一下用户的基本属性:
基于我自己的理解,跟逾期行为相关的因素有:性别,年龄,教育程度,婚姻情况,收入,用户是否有放贷,车贷等其他经济情况。案例数据里我们可以先筛选出:性别,教育程度,婚姻状况。
(职业,户口类型这两个特征虽然能反映用户的收入情况,但不确定性很大,所以不考虑筛选进来,我们可以从用户在银行的收入/支出记录来侧面反映用户的经济情况)
所以第一步筛选的特征为:
sex ,education,marriage,income_num,income_amount,expen_num,expen_amount,wages_num,wages_amount。
再看下这些特征的相关性:
银行流水:
可见收入、支出、工资三个指标的金额跟笔数是线性关系,那么后续将构建一个新的特征:笔均=金额/笔数,取工资笔均;而且收入、支出是强相关(0.82),所以只取一个即可,支出笔均。
账单:
从图中可以看出俩俩之间相关性程度比较高的特征有:
上期账单金额last_bill_amount,上期还款金额last_repay_amount
,本期账单金额cur_bill_amount, 额度credit_amount这四者之间,另外还有本期余额cur_bill_bal 与 本期最低还款cur_bill_minrepay。
说明:
本期应还金额 = 上期账单金额-上期还款金额 + 本期账单金额 - 本期调整金额 + 循环利息
这个公式的意思是:
上期还款金额
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?