ultimatejoe / rong_360_1

融360智能金融算法大赛——拒绝推断

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

融360算法大赛——拒绝推断

比赛网址
比赛新闻
比赛数据 提取码:v77a
2016年1月,机构A通过自建风控模型开始放贷,初期获得了良好的收益。随着时间的推移,机构A发现在样本通过率5%不变的前提下,机构逾期率由2016年1月的5%逐步升至2017年7月的15%,大量坏账导致机构A由盈利陷入亏损境地。公司模型人员仔细检查模型,发现其在训练集和测试集上都表现很好,并没有任何异常,百思不得其解。 在金融信贷场景中,放款机构会通过模型评分筛选用户,评分较好的用户可以获得放款,评分较差的用户直接被拒绝,机构只能获得放款用户样本的好坏标签,对于大量拒绝用户的还款情况无法获得。随着时间的推移,机构手中的训练样本都是“评分较好”的通过用户,而没有“评分较差”的拒绝用户,由此训练的模型在“评分较好”用户中表现越来越好,在“评分较差”用户中却无法得到任何验证。 但是,金融风控模型真实面对的客群却包括了“评分较差”的用户,模型在“评分较差”用户中无法得到验证,导致训练的模型越来越偏离实际情况,甚至通过了大量应该被拒绝的坏用户,致使大量坏账出现,直接带来巨大经济损失。因此,在只有最优质的放款用户好坏标签的情况下,如何保证建模对所有放款用户和拒绝用户都有良好的排序能力,是金融风控模型需要解决的重要问题。解决该问题可以是传统的拒绝推断技术,也可以尝试其他机器学习技术,参赛者可自行选择。

1.具体内容

  训练样本:从2018.1.1到2018.5.1放款用户样本,信用评分top30%的样本给出每个样本是否逾期,后70%样本只有3000个给是否逾期。(约10万样本)
  验证样本:从2018.1.1到2018.5.1放款用户样本,验证集不提供样本是否逾期,参赛选手自行完成是否逾期预测后,可以提交至比赛平台评估结果。(约2万样本)
  测试样本:与验证样本来源相同且同分布。测试集不提供样本是否逾期,参赛选手只能在比赛最后的评比阶段将预测结果提交至比赛平台评估,且只能提交一次。(约2万样本)

2.我们需要你们完成

  对用户各类信用相关数据进行分析处理,挖掘数据价值。
  根据验证样本和测试样本的样本特点,从训练样本中选取合适的训练集,完成建模,保证模型在验证样本和测试样本上的效果。

文件结构

0.auto_sklearn
使用auto sklearn 框架,对原始数据直接进行训。自动化的机器学习在数据处理和特征构建方面仍然无法代替人工的地位。但是现在自动化机器学习已经是机器学习领域又一研究热点,它将会降低机器学习的使用者的门槛。

1.preprocess_data
预处理数据

2.explore_data
数据探索 Tip:小小的经验之谈,数据预处理和数据探索是交替进行的,比如时间这个特征,它是string类型,不是我们数据处理需要数值类型,我们需要把原始时间格式转化为数值类型的变量,然后保存。这样我们就完成了数据预处理部分的工作。然后我们探索时间和标签之间的关系,发现了不同月份的转化率(逾期率)不一样。基于这个发现,我们在返回到数据预处理阶段,对数据做相应特征的提取工作。

3.feature_explore
我们在2.explore_data中尽可能多的提取特征,但是并不是所有的特征都是那么的重要。我们在本节中,通过本地交叉验证的方式来评价不同特征组合的效果。

4.demo
多种模型的尝试

5.predict_test
预测测试集

6.scrum_phase
复赛代码

About

融360智能金融算法大赛——拒绝推断


Languages

Language:Jupyter Notebook 100.0%Language:Python 0.0%