2020-09-15 比赛学习 Task1 赛题理解

一、赛题背景

本次新人赛是Datawhale与天池联合发起的0基础入门系列赛事第四场 —— 零基础入门金融风控-贷款违约预测。
赛题以金融风控中的个人信贷为背景,要求选手根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题。通过这道赛题来引导大家了解金融风控中的一些业务背景,解决实际问题,帮助竞赛新人进行自我练习、自我提高。
比赛链接:https://tianchi.aliyun.com/competition/entrance/531830/information


二、数据概况

赛题以预测用户贷款是否违约为任务,数据集报名后可见并可下载,该数据来自某信贷平台的贷款记录,总数据量超过120w,包含47列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B,同时会对employmentTitle、purpose、postCode和title等信息进行脱敏。
每个字段的描述信息如下:

  1. id :为贷款清单分配的唯一信用证标识
  2. loanAmnt :贷款金额
  3. term :贷款期限(year)
  4. interestRate :贷款利率
  5. installment :分期付款金额
  6. grade :贷款等级
  7. subGrade: 贷款等级之子级
  8. employmentTitle: 就业职称
  9. employmentLength: 就业年限(年)
  10. homeOwnership :借款人在登记时提供的房屋所有权状况
  11. annualIncome :年收入
  12. verificationStatus: 验证状态
  13. issueDate :贷款发放的月份
  14. purpose :借款人在贷款申请时的贷款用途类别
  15. postCode :借款人在贷款申请中提供的邮政编码的前3位数字
  16. regionCode :地区编码
  17. dti :债务收入比
  18. delinquency_2years: 借款人过去2年信用档案中逾期30天以上的违约事件数
  19. ficoRangeLow :借款人在贷款发放时的fico所属的下限范围
  20. ficoRangeHigh :借款人在贷款发放时的fico所属的上限范围
  21. openAcc :借款人信用档案中未结信用额度的数量
  22. pubRec :贬损公共记录的数量
  23. pubRecBankruptcies: 公开记录清除的数量
  24. revolBal :信贷周转余额合计
  25. revolUtil :循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额
  26. totalAcc :借款人信用档案中当前的信用额度总数
  27. initialListStatus: 贷款的初始列表状态
  28. applicationType :表明贷款是个人申请还是与两个共同借款人的联合申请
  29. earliesCreditLine :借款人早报告的信用额度开立的月份
  30. title :借款人提供的贷款名称
  31. policyCode :公开可用的策略代码=1新产品不公开可用的策略代码=2
  32. n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理

三、评价指标

由于该赛题为二分类问题,需要理解二分类问题的常用模型指标,包括混淆矩阵、准确率、召回率、精准度、F1 score、PR曲线、ROC曲线和AUC
本赛题排名所用指标为AUC

通常情况下,通过某种机器学习算法对训练数据集进行学习后建立的模型在机器学习领域内称为“学习器”。由于本研究涉及的算法为监督学习中的分类算法,所以本文中将模型称为“分类器”(classifier)。
一般地,给定一个训练数据集D:
D = {(x1, y1), (x2, y2), …… , (xn, yn)}
其中(xi,yi),i = 1,2,…,N,为数据集D中第i个训练样本,xi为输入X的观测值,称为特征向量;yi是输出Y的观测值,称为标签。经过在训练集D上的学习后,获得一个分类器,用函数H(x)表示。
分类器对某样本的预测结果和其真实标签的差异称为“误差”,我们把分类器在训练数据集上产生的误差称为“训练误差”,在新样本上的误差称为“泛化误差”。几乎在所有情况下,常用的机器学习算法(包括深度学习)都可以对训练数据集拟合地很好,但在新样本上表现较差,这种情况称为“过拟合”。出现这种情况的原因是模型把训练数据集中自身存在的一些随机的、不具有普遍性的特征也进行了学习,导致的泛化能力的下降。通常可以通过在原始数据集上取出一部分样本作为测试数据集,然后以分类器在测试集上的测试误差作为泛化误差的近似。

3.1 混淆矩阵

针对分类器泛化性能的评估需要衡量模型泛化能力的评价标准。对于本研究涉及的二分类问题,可根据样本真实类别和分类器预测类别分为真正(true positive,TP)、假正(false positive,FP)、真负(true negative,TN)和假负(false negative,TP),由下面表格所示的混淆矩阵表示。

真实结果 预测结果 预测结果
——
真正,TP 假负,FN
假正,FP 真负,TN

3.2 准确率、召回率、精准度、F1 score

分类器预测的准确度定义为:
(TP + TN) / (TP + TN + FP + TN)
表示所有样本中预测正确的比例,包括真正和真负。

召回率定义为:
TP / (TP + FN)
表示在所有实际为正的样本中,有多少比例被分类器正确捕获到了。

精准度定义为:
TP / (TP+FP)
表示在所有分类器预测为正的样本中,有多少比例实际为正(判断正确的)。

从上述定义中可以发现,召回率和精准度是一对互相矛盾的指标,即模型严格时,精准度高而召回率低即模型预测为正的样本中正确的比例较高,但同时导致一些在判断阈值边缘的正样本无法被模型捕获;反之,模型较为宽松时,精准度低而召回率高(一个恰当的比喻就是,“宁可错杀一千也不放过一个”)
因此,一般可以使用F1 score指标来平衡召回率和精准度:
F1 score = 2 * percision * recall / (percision + recall)

3.3 P-R 曲线、ROC曲线和AUC

很多情况下分类器都可以输出每个被预测为正的样本的概率,将概率从大到小进行排序,按顺序将每个概率设置为“阈值”,高于阈值对应的样本作为新的正例,低于阈值对应的样本作为新的负例,重新计算精准度和召回率并分别作为纵轴和横轴,画出一系列点组成的曲线就是P-R曲线。
一般来说P-R曲线会从点(0,1)附近,逐渐变化到点(1,0)附近。

这两点的含义分别是:

  1. 模型极端严格,所有预测为正的样本都一定实际判断正确,精准度100%,而由于大多数正例无法“过关”,导致召回率非常低;
  2. 模型极端宽松,比如将所有样本均判断为正,此时召回率为100%,但其中掺杂了许多“假的正例”,导致查准率很低。

ROC曲线的绘图逻辑和P-R曲线类似,但是假正例率(FPR)定义为 X 轴,真正例率(TPR)定义为 Y 轴。
其中:
TPR 即为召回率
FPR = FP / (FP + TN),表示实际为负的样本中,判断错误的比率。
ROC曲线是一个从点(0,0)附近逐渐变化到点(1,1)的曲线。

在某一个判断阈值下,假正例率越低同时召回率越高说明模型表现约好,所有ROC曲线越靠近左上角说明模型性能越优越。当曲线拟合值y=x时说明模型真实性最低,不具备应用价值。

由于ROC曲线的整体空间为1 * 1,所以可以用曲线下方面积作为评价指标,该指标被称为AUC,取值范围为(0.5, 1),AUC越大越好。

3.4 金融风控领域常见评估指标KS(Kolmogorov-Smirnov) 曲线

K-S曲线与ROC曲线类似,不同在于

  1. ROC曲线将真正例率和假正例率作为横纵轴
  2. K-S曲线将真正例率和假正例率都作为纵轴,横轴则由选定的阈值来充当。
    KS不同代表的不同情况,一般情况KS值越大,模型的区分能力越强,但是也不是越大模型效果就越好,如果 KS过大,模型可能存在异常,所以当KS值过高可能需要检查模型是否过拟合。以下为KS值对应的模型情况,
    但此对应不是唯一的,只代表大致趋势。
  3. KS值<0.2,一般认为模型没有区分能力。
  4. KS值[0.2,0.3],模型具有一定区分能力,勉强可以接受
  5. KS值[0.3,0.5],模型具有较强的区分能力。
  6. KS值大于0.75,往往表示模型有异常。

你可能感兴趣的:(2020-09-15 比赛学习 Task1 赛题理解)