零基础入门金融风控-贷款违约预测-Task01

        有幸参加了阿里云举办的零基础入门金融风控-贷款违约预测训练营。收获颇多。

        每天记录一些自己之前的知识盲点,需经常温习。

一、赛题理解

        该赛题是金融风控中关于贷款违约情况的预测。盲猜是个机器学习中监督学习的分类问题。从训练集和测试集的对比中可以得到标签label的字段。

1、首先观察训练集train.csv和testA.csv,将train.csv和testA.csv的shape分别打印出来,发现居然train.shape的列数比testA.shape的列数少两列。这不科学啊~

零基础入门金融风控-贷款违约预测-Task01      零基础入门金融风控-贷款违约预测-Task01

结果发现里面的n2有很多重复内容,果断删除~

零基础入门金融风控-贷款违约预测-Task01

删除以后的结果:

零基础入门金融风控-贷款违约预测-Task01

这次就对了,train.shape的列数比testA.shape的列数刚好多一个。通过对比得出,label即为isDefault

是一个明显的二分类问题,0和1两类。但是目前还不清楚0和1分别代表什么。

2、小组开会,分析了各个字段,得出的结论:

Field Description 备注 数据类型 数据示例
id 为贷款清单分配的唯一信用证标识 本次数据的主键,申请时生成 int64  
loanAmnt 贷款金额 具体发放的金额,因为有可能产生罚息所以是浮点数 float64  
term 贷款期限(year)   int64  
interestRate 贷款利率   float64  
installment 分期付款金额 与还款方式有关:先本后息、先息后本、本息 float64  
grade 贷款等级 与个人征信有关,征信等级 object E,D,D,A
subGrade 贷款等级之子级 与个人征信有关,征信等级,跟上一行有信息重合,考虑删除一行 object E2,D2,D3,A4
employmentTitle 就业职称 已脱敏 float64  
employmentLength 就业年限(年) 这个数据有点脏 object 10+ years
homeOwnership 借款人在登记时提供的房屋所有权状况 0:无;1:一套;2:两套 int64 0,1,2
annualIncome 年收入 单位为元 float64  
verificationStatus 验证状态 不太清楚是什么 int64 0,1,2
issueDate 贷款发放的月份 贷款发放的年月 object 2014/1/1;2018/12/1
purpose 借款人在贷款申请时的贷款用途类别 已脱敏 int64  
postCode 借款人在贷款申请中提供的邮政编码的前3位数字 在业务场景中会使用到:东三省、福建预期较多 float64 159,59
regionCode 地区编码 跟上述数据关联性位置 int64 48,7
dti 债务收入比 小额贷/收入(银行流水) float64  
delinquency_2years 借款人过去2年信用档案中逾期30天以上的违约事件数 业务重点考虑点 float64  
ficoRangeLow 借款人在贷款发放时的fico所属的下限范围 业内的一个评分,有范围,5个单位为一个范围 float64 660
ficoRangeHigh 借款人在贷款发放时的fico所属的上限范围 业内的一个评分,有范围,6个单位为一个范围 float64 705
openAcc 借款人信用档案中未结信用额度的数量 笔数 float64  
pubRec 贬损公共记录的数量 公开的违规信息,可能是法院起诉等公开信息 float64  
pubRecBankruptcies 公开记录清除的数量 公开的违规被清除信息 float64  
revolBal 信贷周转余额合计 循环贷 float64 19,723,220
revolUtil 循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额   float64  
totalAcc 借款人信用档案中当前的信用额度总数 ? float64  
initialListStatus 贷款的初始列表状态 ? 0为否 int64 0,1
applicationType 表明贷款是个人申请还是与两个共同借款人的联合申请 是否有共借人 0为否 int64 0,1
earliesCreditLine 借款人最早报告的信用额度开立的月份 年月 object  
title 借款人提供的贷款名称 已脱敏 float64  
policyCode 公开可用的策略_代码=1新产品不公开可用的策略_代码=2 训练集数据均为1 float64 1
n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理   float64  

 3、评测标准

        二分类问题很自然可以联想到混淆矩阵,进而有准确率、精确率、召回率、F1值、PR曲线、ROC曲线等一系列指标。其中,ROC曲线下的面积称为AUC(Area Under Curve,曲线下面积),该值介于0.5~1之间,且越大越好。

        天池赛题的评价标准恰好为AUC指标。计算AUC值需要sklearn.metric中的roc_auc_score函数。

        为了赛题的可解释性,需要将数据进行可视化,并且尽可能计算出相关的数据,逐步分析结果。

4、结果提交格式

        结果提交格式保留了传统的天池比赛和Kaggle比赛的提交形式,采用.csv格式进行提交。第一列为id,第二列为预测的label,即isDeafult。

        有一点需要注意,不能用pandas自动生成的index。故生成.csv文件的代码应为:pd.to_csv('submission.csv', index = False)。

5、个人关于本次比赛的初步想法        

        赛题含有强烈的金融行业的垂直属性,还需要咨询相关行业的专家分析各个字段的含义,明确可以删除的列,需要填充的列。这个训练集的特征工程比较难,且很费时。是块儿最难啃的骨头。

        二分类可选的模型很多。可以考虑先采用逻辑回归LR做个baseline形式的代码,然后逐步通过KNN、SVM、GBDT和XGBoost等算法进行训练、预测。