竞赛背景

在这里插入图片描述
四川新网银行属于全国首批将机器学习技术应用到实际零售信贷业务中的银行。目前,四川新网银行已经开发出了国内第一款全在线办理的银行大额云授信产品——“好人贷”。在”好人贷“的量化风控实践中,四川新网银行依然面临多个维度的挑战:高维数据、稀疏数据、无标签样本、多产品客群好坏样本不平衡等等。为了更好地服务更多的客户,新网银行期待各位参赛者利用机器学习算法的最新成果,设计出区分能力高、稳定性强的信用风险预测模型。

本次竞赛的任务是利用主办方提供的数据,包括用户id,157项脱敏的属性/行为特征,以及是否属高风险用户的标签项等,预测验证集上的客户违约概率。

竞赛地址: http://www.dcjingsai.com/common/cmpt/%E8%A5%BF%E5%8D%97%E8%B4%A2%E7%BB%8F%E5%A4%A7%E5%AD%A6%E2%80%9C%E6%96%B0%E7%BD%91%E9%93%B6%E8%A1%8C%E6%9D%AF%E2%80%9D%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6%E7%AB%9E%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html

数据介绍

本赛题中,主办方提供了25,000条训练集,其中包括有标签数据15,000条,及无标签数据10,000条。大赛的验证集包括10,000条数据。其中对于数据的‘y’标签定义如下,‘0’表示低风险用户,‘1’表示高风险用户。对于每位用户,主办方提取了157个属性/行为特征用户模型构建。所有的属性/行为特征均经过了脱敏处理。

数据预处理

特征预筛选

对于所有的157个特征,某些用户在某些特征上会出现缺失的情况,我们将其称为‘数据缺失问题’。严重的数据缺失问题会引入数据噪声,使模型学习到错误的规则,进而影响模型的精准度。统计发现,在所有训练数据中,有些特征缺失的程度超过20%,对于这样的有严重数据缺失问题的特征,我们在预筛中将其舍弃。

同时,我们发现某些特征对所有用户来说,都有同样的值,例如x_151号特征,在所有用户上的非空取值都1;x152号特征同样如此,等等。这样的单一值特征,我们认为对于区分用户是否为违约用户的用处不大,故同样将其舍弃。

特征工程

我们发现,对于x_95号特征之后的特征,都为离散的特征。离散特征会使得训练的模型出现一定的偏差,对于这样的离散特征,我们使用one hot编码来处理。例如,x_95号的取值为0,1,2,我们将其分别编码为001,010,100。对于缺失的数据,我尝试用均值,众数填充,均未发现对模型的性能有提升效果,故我们不对缺失值做任何处理。

为了观察各特征的重要性,同时为了更深入的理解数据,我们使用基于lightgbm模型的特征筛选方案,我们的特征筛选方案可用下图来描述。

如图所示,我们的特征筛选大致经过两个过程,线下筛选验证和线上筛选验证,我们对着两个过程阐述如下:
在这里插入图片描述

线下筛选验证

我们首先将线下的数据按8:2的比例分为线下训练数据和线下验证数据。对所有经过预处理的特征,我们将其构建成一个特征集合,然后开始训练一个lgb模型,利用lgb模型对所有的特征进行重要性打分,并从按重要性分数的从大到小将特征进行排名。然后,我们删除排名最低的10%的特征,利用我们构建的集成模型和线下验证数据对剩下的特征作线下验证。这里,集成模型的方案我们将在下个章节详细介绍。若线下验证的AUC提高,我们则进入线上筛选验证的环节,反之,则撤销此次删除,并删除5%的特征,构建新的特征集,再次进行AUC验证。

线上筛选验证

我们对通过线下筛选沿着的特征集训练集成模型,并预测线上测试集的结果,查看线上AUC的提高与否。若线上AUC提高,我们继续进行下一次的筛选,反之,则终止整个特征筛选过程。

通过特征筛选方案,我们得到了93个高排名特征,用于最终的集成学习中。部分高排名特征如下表所示:

在这里插入图片描述
同时,我们也给出前30特征重要性分数的示意图,如下图所示:

在这里插入图片描述

模型构建

在构建模型的过程中,我们首先对常用了分类模型进行测验,并在其中选择我们最终使用的模型,然后再构建集成方案,生成最终结果。
单模型选择:我们测验了6个常用的分类单模型,他们分别是逻辑回归(LR),朴素贝叶斯(Byes)随机森林(RF),支持向量机(SVM),LightGBM(LGB),Xgboost(XGB)。下表展示了单模型线下线上提交的最高分数:
在这里插入图片描述

可以看到,线下的得分与A榜得分呈正相关,说明线下的验证是合理的。逻辑回归(LR)模型在线上表现的最差,Xgboost(XGB)模型在线上表现的最好。因此我们用LGB,XGB作为我们的Baseline模型,在这二者的基础上构建集成方案。在特征选择阶段,我们也尝试用XGB作为核心,对特征打分排名,经过试验验证,XGB打分所得到特征劣于LGB,故在特征选择阶段,我们核心的特征排名打分模型使用的是LGB。

集成模型方案:我们的集成方案综合了bagging和staking,形成了多交叉验证(cv)下的累积集成,简称为MCVS(Muti-Cross Validation Stacking)。下图描述了我们的MCVS方案:

在这里插入图片描述

首先我们对数据集切分,分别按3,5,8,10的比例切分,作为交叉验证,然后对每个cv数据集,我们分别训练xgb和lgb两个模型,切将其均值(avg)作为cv的最终输出。同时,我们将每组cv的中间结果作为特征,以xgb,lgb分别训练stacking模型。最后,我们将所有的平均输出,stacking输出的加权和作为最后的预测结果,其中第i个模型的加权分数的计算公式如下:
在这里插入图片描述
其中auc为线上提交验证的auc分数。

欢迎关注【AI小白入门】,这里分享Python、机器学习、深度学习、自然语言处理、人工智能等技术,关注前沿技术,求职经验等,陪有梦想的你一起成长。
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐