一战成名,用户贷款风险预测 参赛代码与数据集分享

队伍名“一战成名” 最终线上排名第七。

任务

融360与平台上的金融机构合作,提供了近7万贷款用户的基本身份信息、消费行为、银行还款等数据信息,需要参赛者以此建立准确的风险控制模型,来预测用户是否会逾期还款。

赛题:用户贷款风险预测(算法竞赛)

http://www.pkbigdata.com/common/cmpt/%E7%94%A8%E6%88%B7%E8%B4%B7%E6%AC%BE%E9%A3%8E%E9%99%A9%E9%A2%84%E6%B5%8B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html

本文代码在公众号 datadw 里 回复 风险 即可获取。

训练数据 :https://pan.baidu.com/share/init?shareid=1950975130&uk=2921663747

密码:pcsh

测试数据:https://pan.baidu.com/share/init?shareid=1950975130&uk=2921663747 密码:pcsh

训练数据包括用户的基本属性user_info.txt、银行流水记录bank_detail.txt、用户浏览行为browse_history.txt、信用卡账单记录bill_detail.txt、放款时间loan_time.txt,以及这些顾客是否发生逾期行为的记录overdue.txt。

评分标准:

解决方案概述

本题很多关键属性被脱敏处理,比如时间戳和所有金额的值,这个对我们进行特征构造带来很多的影响,损失了很多业务信息。不过对于参赛者都是公平的,因而我们构造了大量的统计特征,根据模型及线上反馈最佳特征大多来自用户浏览行为browse_historybill_detail,此外发现放款时间也是个强力特征,详细见代码部分。这里只放了我个人的代码,队友的特征工程很多类似的,也有一些独特之处,这里说几个思路:bill_detail表的特征按放款时间分为放款前放款后分别统计(还可以尝试多划分几个时间窗再统计)、基于熵的分箱处理(特征离散化)、排序特征、组合特征等,有兴趣可以自己去实现。模型方面,我本人主要玩了xgboost和lightgbm,队友也基本上是xgboost、RandomForest,在玩Stacking融合的时候还上了ExtraTreesClassifier和Logistic Regression。

模型设计与模型融合

  • 单模型: 还是玩的大杀器xgboost,简单粗暴,然后进行了一些调参工作。个人单模型成绩最佳到0.443+,Top35,队友也基本玩的xgb,组队后大家做了特征融合,单模型能到0.455+,线上Top20。
  • mic加权融合: 后期单模型到极限了,也可能我们特征水平有限,已经很难通过特征工程和调参提升成绩了。于是开始玩融合,参考了“不得直视本王”的解决方案,对不同的模型结果计算mic值对比相关性,然后根据线上以及线下的评分进行加权融合,记得那天在群里就模型简单加权融合还是完善特征工程或是优化验证集等等讨论很久,最终决定还是尝试一下mic,结果当天提升到0.46+,直接Top10了。
  • Stacking模型: 再玩mic加权融合的同时,我们总结了成绩提升的原因,就是模型多样化。不同的模型结果(不同特征集或者不同的样本集或者不同的模型)融合才能得到好的结果,可以有效避免过拟合。抱着学习的态度,我们开始尝试stacking融合,边学边做,这个轮子是队友找来的,我们对它进行了一些修改,做成了我们自己的stacking轮子。 主要思路是:根据最佳单模型的xgb特征评分排名将特征集分量两个子集(1、3、5….和2、4、6…)作为基模型的训练集。基模型包括ET、RF、Xgboost,3个基模型分别训练这2个特征子集,保证相同的cv和seed。这样训练完成得到验证集的预测值拼接成新的训练集,一共可以得到6个新特征(2组特征子集,3个模型),最后第二层基于这些新特征训练ET模型,这里可以加上一部分你的原始特征,也可以组合新的特征,这些都值得尝试。Stacking的过程是非常耗时的,因为需要跑多个模型以及多次cv,我16G内存,i7 cpu跑一次完整的需要七八个小时。至于Stacking带来的提升,本次比赛并没有带来火箭,不如mic加权组合。 stacking的思路可以参考下面这张图,如果难以理解建议多查资料或者直接请教别人,然后看代码实现,我一开始也是觉得懂了,但是用起来发现细节还是不清楚。

相关博文: http://mlwave.com/kaggle-ensembling-guide/ http://blog.csdn.net/a358463121/article/details/53054686#t18

个人总结

抱着学习的态度从DC群老段子的开源代码玩起,一步步慢慢提升,年前玩到Top40,然后过年荒废了十来天,回校的时候成绩已经70开外,于是开始新一波努力。在这个过程中认识了现在的队友,边交流边提升,可以说如果我们没有组队,我们四个人都到不了Top10,因此我再次觉得打比赛还是要团队协作,这样可以互相佐证思路,实现更多的想法,完成更多的思路,学习到更多的东西。而且当你有队友以后,你会变得更加投入,每个人都有责任感。在群里争论,产生分歧,最后大家统一想法,完成提交。基本每天早上开始各自实现思路,晚上八九点开始讨论融合,十二点前完成提交,有时候因为取得突破激动的很晚才能睡着,也有最后一天最后一搏失败后的互相安慰,这种体会真的很棒。总之非常感激本次比赛的各位队友们,让我真正体会到比赛的乐趣。

多看以往的大神总结,wepon大神的github吐血推荐!!!https://github.com/wepe ,本次比赛主要参考了他们去年微额借款用户人品预测大赛冠军解决方案以及拍拍贷风险控制大赛铜奖解决方案,干货多多!

此外还有:金老师的知乎专栏:https://zhuanlan.zhihu.com/jlbookworm ,收录了各种大神解决方案和开源代码。

via http://blog.csdn.net/sb19931201/article/details/56315689

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2017-12-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

Facebook人工智能实验室负责人讲深度学习

2166
来自专栏互联网数据官iCDO

可视化图表入门教程

数据可视化,即通过图表形式展现数据,帮助我们快速、准确理解信息。好的可视化会“讲故事”,能向我们揭示数据背后的规律。

1292
来自专栏大数据文摘

资源 | 一文学会统计学中的显著性概念

假设你是一所大学的院长,你收到一份相关报告显示你的学生每晚平均睡眠时间为6.80小时,而全国大学学生的平均睡眠时间为7.02小时。

1054
来自专栏AI科技评论

开发 | Facebook的数据预测工具Prophet有何优势?用贝叶斯推理一探究竟

AI科技评论按:2月23日,Facebook开源了一款基于 Python 和 R 语言的数据预测工具——“Prophet”(。本文则详细介绍了Prophet的贝...

38012
来自专栏大数据挖掘DT机器学习

拍拍贷风控预测模型

拍拍贷“魔镜风控系统”从平均400个数据维度评估用户当前的信用状态,给每个借款人打出当前状态的信用分,在此基础上,再结合新发标的信息,打出对于每个标的6个...

7338
来自专栏新智元

【春节荐书】必读机器学习书籍一览表,PDF下载

新智元推荐 来源:专知 编辑:克雷格 【新智元导读】转眼之间春节假期已所剩无几,大家是否也开始制定新一年的学习计划?本文就为大家推荐一个机器学习书单,其...

54814
来自专栏新智元

DeepMind成员、谷歌资深员工:神经网络序列学习突破及发展(附报告下载)

【新智元导读】谷歌CEO在给投资人的信中写道谷歌搜索将更具有情景意识,其关键技术自然是深度学习。本文中,谷歌资深员工、DeepMind 成员 Oriol Vin...

3687
来自专栏新智元

【神经网络会梦到电子羊吗?】“匹配模式”暴露神经网络致命缺陷

---- 新智元报道 来源:aiweirdness、gizmodo 编译:肖琴 【新智元导读】神经网络的专长之一是图像识别。谷歌、微软、IBM、Fac...

3649
来自专栏PPV课数据科学社区

你真的了解机器学习、人工智能、统计建模吗?

分布式计算、云计算、人工智能 机器学习、深度学习、统计建模 这些最新的词汇大家应该都有所了解 但你真的了解这些词的意义吗? 一、机器学习 机器学习是以数据为基...

3726
来自专栏ACM算法日常

第七篇:《机器学习之神经网络(二)》

我们之前学的,无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。

1071

扫码关注云+社区

领取腾讯云代金券