金融风控-TASK1 赛题理解
一、赛题理解
赛题以金融风控中的个人信贷为背景,要求选手根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题。 如何充分利用给出的各类数据,筛选并构建有效特征成为比赛制胜的关键。
二、赛题简介
赛题以预测金融风险为任务,数据集报名后可见并可下载,该数据来自某信贷平台的贷款记录,总数据量超过120w,包含47列变量信息,其中15列为匿名变量。从中抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B,同时会对employmentTitle、purpose、postCode和title等信息进行脱敏。
三、数据概况
train.csv
- id 为贷款清单分配的唯一信用证标识
- loanAmnt 贷款金额
- term 贷款期限(year)
- interestRate 贷款利率
- installment 分期付款金额
- grade 贷款等级
- subGrade 贷款等级之子级
- employmentTitle就业职称
- employmentLength 就业年限(年)
- homeOwnership 借款人在登记时提供的房屋所有权状况
- annualIncome 年收入
- verificationStatus 验证状态
- issueDate 贷款发放的月份
- purpose 借款人在贷款申请时的贷款用途类别
- postCode 借款人在贷款申请中提供的邮政编码的前3位数字
- regionCode 地区编码
- dti 债务收入比
- delinquency_2years 借款人过去2年信用档案中逾期30天以上的违约事件数
- ficoRangeLow 借款人在贷款发放时的fico所属的下限范围
- ficoRangeHigh 借款人在贷款发放时的fico所属的上限范围
- openAcc 借款人信用档案中未结信用额度的数量
- pubRec 贬损公共记录的数量
- pubRecBankruptcies 公开记录清除的数量
- revolBal 信贷周转余额合计
- revolUtil 循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额
- totalAcc 借款人信用档案中当前的信用额度总数
- initialListStatus 贷款的初始列表状态
- applicationType 表明贷款是个人申请还是与两个共同借款人的联合申请
- earliesCreditLine 借款人最早报告的信用额度开立的月份
- title 借款人提供的贷款名称
- policyCode 公开可用的策略代码=1新产品不公开可用的策略代码=2
- n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理
四、模型评判标准
常见的模型评判指标有准确率(Accuracy)、精准率(Precision)、召回率(Recall),由于贷款违约问题为样本不平衡问题,可借助F1 score(精准率与召回率的调和平均数),AUC(ROC曲线下的面积)对模型分类性能做出更合理更全面的评判。
由本次比赛的教程了解到了金融风控预测类常见的评估指标 KS(Kolmogorov-Smirnov):
K-S曲线与ROC曲线类似,不同在于
- ROC曲线将真正例率和假正例率作为横纵轴
- K-S曲线将真正例率和假正例率都作为纵轴,横轴则由选定的阈值来充当。
公式如下:
KS=max(TPR-FPR)
KS不同代表的不同情况,一般情况KS值越大,模型的区分能力越强,但是也不是越大模型效果就越好,如果
KS过大,模型可能存在异常,所以当KS值过高可能需要检查模型是否过拟合。以下为KS值对应的模型情况,
但此对应不是唯一的,只代表大致趋势。 - KS值<0.2,一般认为模型没有区分能力。
- KS值[0.2,0.3],模型具有一定区分能力,勉强可以接受
- KS值[0.3,0.5],模型具有较强的区分能力。
- KS值大于0.75,往往表示模型有异常。
K-S曲线实际上就是把阈值作为横坐标,TPR和FPR,也就是召回率和虚警率,其实也就是ROC曲线的那两个变量,同时作为纵坐标,随着阈值的变化,召回和虚警都从0到1,这时候,两者距离最远的地方就是KS值。代表在某个阈值的时候,召回和虚警差距最大,也就意味着能用最少的虚警换来最多的召回,这个位置是我们需要的阈值。
其实可以想象一下,把虚警那条曲线拉直,然后让召回随着虚警也对应地变化,那么得到的其实就是ROC曲线。