前海征信大数据算法:风险概率预测

640?wx_fmt=gif

向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程  公众号: datayx

640?wx_fmt=png

亲爱的算法工程师们,元旦快乐!

感谢大家过去一年的关注与支持,有更好的建议或需求欢迎回复小编。新的一年你们将是人工智能、机器学习领域内的主角,越努力越幸运!

640?wx_fmt=png

640?wx_fmt=png

本次比赛提供了中等额度信用贷款数据和小额短期贷款数据,要求我们设计迁移学习算法,对小额短期现金贷进行风险预测。

640?wx_fmt=png

通过搜集资料,结合团队以往的建模经验,我们提出整体的建模思路如下,即通过训练A_trainB_train,开发相应的知识模型K,然后基于一定的策略将K导入学习系统M中,进而实现对现金贷数据B_test的预测

640?wx_fmt=png

我们进行数据探索的整体流程如下。首先,我们进行了数据质量分析,包括缺失值分析和非平衡分析等。当然也考虑了特征分布情况,进行了可视化分析。此外,我们还尝试了数据清洗、规范化、离散化的各类方法。较为重要的特征工程将在第三部分进行详细介绍。

640?wx_fmt=png

传统的监督学习都基于训练和测试集同分布的条件,设计迁移学习算法,首先应该思考什么条件下可以进行迁移。我们对三个数据集的部分重要特征进行了可视化,此处以Userinfo_82为例,可以看出,UserInfo_82A_trainB_trainB_test上的分布是较为相似的。诸如此类重要特征就为我们的迁移学习提供了一定条件。

640?wx_fmt=png

根据奥卡姆剃刀原理,当模型复杂度的较高时,泛化能力往往会变差,因此,我们试图寻找简单有效的模型,来保证模型的稳定性和泛化能力

640?wx_fmt=png

我们的算法思路受到戴文渊提出的TrAdaBoost算法的启发。基于数据切实存在的可迁移性,我们通过Boosting类算法分别训练源训练数据B_train和 辅助训练数据A_train,然后进行融合建模。

640?wx_fmt=png

在整个比赛过程中,我们尝试了多种建模思路,比如传统的信用评分卡模式,也包括各类数据竞赛常用的方法。我们最终解决方案的整体框架如图所示,整个系统实现了数据预处理、特征工程,特征选择,模型训练,交叉验证,预测和模型融合,下面将进行详细介绍

640?wx_fmt=png

好的预测模型离不开特征工程。下面首先介绍我们的特征工程方法。

640?wx_fmt=png

我们制作了缺失值转换特征,统计型特征,交互型特征,同时还进行了特征的相关性分析

(由于未公开字段的具体含义,导致不清楚如何去设计新的字段,所以无法进行大范围的特征工程)

640?wx_fmt=png

640?wx_fmt=png

我们依托Scikit-learn和微软最新开源的LightGBM等算法库,使用了卡方检验,梯度提升树等特征选择算法进行迭代测试,选取适合的特征组合来进行模型训练

640?wx_fmt=png

模型训练的最终结果是,对于B_train,我们使用LightGBM做特征选择,然后GBDT进行训练,并通过5折交叉验证进行线下测试和调参,得到了B_Model_1。对于A_train, 我们分别使用LightGBMGBDT算法,用Btrain作为线下的验证集,分别训练了A_Model1A_Model2

640?wx_fmt=png

用这三个模型分别对B_test进行预测,并把预测结果进行了两次加权融合。

640?wx_fmt=png

1.首先从做项目和做比赛来讲,模型开发和版本管理的工程化思维是很重要的,同时还需要高内聚低耦合的集体编程智慧。

2. 学术研究与应用研究应该是相辅相成的,过度迷信理论或者经验都是片面的,实践是检验真理的唯一标准。

3. 从学生的角度上讲,我们在努力培养自己进行Marketing-engineering-sales的能力,这使我们不惧怕接受任何新知识、新领域,也有信心能够快速掌握它们。

4. 最后,我想说,在仰望星空的同时,我们也应该在预测模型的可解释性和数据产品的变现能力上进行更多的思考,培养自己的核心竞争力。

完整代码获取方式:

关注微信公众号 datayx  然后回复 风控 即可获取。


阅读过本文的人还看了以下:

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

640?wx_fmt=jpeg

长按图片,识别二维码,点关注

640?wx_fmt=png