近7万贷款用户的基本身份信息、消费行为、银行还款等数据信息,需要参赛者以此建立准确的风险控制模型,来预测用户是否会逾期还款。
训练数据包括用户的基本属性user_info.txt、银行流水记录bank_detail.txt、用户浏览行为browse_history.txt、信用卡账单记录bill_detail.txt、放款时间loan_time.txt,以及这些顾客是否发生逾期行为的记录overdue.txt。(注意:并非每一位用户都有非常完整的记录,如有些用户并没有信用卡账单记录,有些用户却没有银行流水记录。) 相应地,还有用于测试的用户的基本属性、银行流水、信用卡账单记录、浏览行为、放款时间等数据信息,以及待预测用户的id列表。
解决方案概述
本题很多关键属性被脱敏处理,比如时间戳和所有金额的值,这个对我们进行特征构造带来很多的影响,损失了很多业务信息。不过对于参赛者都是公平的,因而我们构造了大量的统计特征,根据模型及线上反馈最佳特征大多来自用户浏览行为browse_history和bill_detail,此外发现放款时间也是个强力特征,详细见代码部分。这里只放了我个人的代码,队友的特征工程很多类似的,也有一些独特之处,这里说几个思路:bill_detail表的特征按放款时间分为放款前放款后分别统计(还可以尝试多划分几个时间窗再统计)、基于熵的分箱处理(特征离散化,熊掌整理了思路见:最优分箱.docx)、排序特征、组合特征等,有兴趣可以自己去实现。模型方面,我本人主要玩了xgboost和lightgbm,队友也基本上是xgboost、RandomForest,在玩Stacking融合的时候还上了ExtraTreesClassifier和Logistic Regression。
模型设计与模型融合