天池–金融风控贷款违约预测
anthor:小李江湖
date:2020-9-15
前言
好记性不如烂笔头!
最近报名参加阿里天池金融风控贷款违约预测大赛,学习数据分析方法,以赛学习,在此记录学习的过程,总结参加大赛的方法。
1.参赛背景
1.1 参赛目的
阿里天池平台为初学者提供学习平台,为大神提供展示才华平台。
本人一直在学习的门口迟迟徘徊无法入门,借此机会系统学习参加大赛的流程,掌握分类学习方法。
2.赛题解析
2.1 赛题背景
赛题以金融风控中的个人信贷为背景,要求选手根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题。通过这道赛题来引导大家了解金融风控中的一些业务背景,解决实际问题,帮助竞赛新人进行自我练习、自我提高
2.2 赛题数据
赛题以预测用户贷款是否违约为任务,数据集报名后可见并可下载,该数据来自某信贷平台的贷款记录,总数据量超过120w,包含47列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B,同时会对employmentTitle、purpose、postCode和title等信息进行脱敏。
字段表
Field Description
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,为一些贷款人行为计数特征的处理
2.3 结果要求
通过以上47个数据指标,预测分析isDefault这个字段的一个概率值(0-1)。
提交前请确保预测结果的格式与sample_submit.csv中的格式一致,以及提交文件后缀名为csv
提交示例格式:
id,isDefault
800000,0.5
800001,0.5
800002,0.5
800003,0.5
2.4 评价标准
提交结果为每个测试样本是1的概率,也就是y为1的概率。评价方法为AUC评估模型效果(越大越好)
AUC介绍:
AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积。
3.拓展学习
3.1分类算法常见概念介绍:
3.1.1、混淆矩阵(Confuse Matrix)
1. (1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive ) 2. (2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative ) 3. (3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive ) 4. (4)若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )
2、准确率(Accuracy)
准确率是常用的一个评价指标,但是不适合样本不均衡的情况。
auccracy= (TP+ TN)/(TP+TN+FP+FN)
3、精确率(Precision) 又称查准率,正确预测为正样本(TP)占预测为正样本(TP+FP)的百分比。
Precision = TP/(TP+FP)
4、召回率(Recall) 又称为查全率,正确预测为正样本(TP)占正样本(TP+FN)的百分比。
Recall = TP/(TP+FN)
5、F1 Score
精确率和召回率是相互影响的,精确率升高则召回率下降,召回率升高则精确率下降,如果需要兼顾二者,就需 要精确率、召回率的结合F1 Score。
F1-Score = 2(Precision * Recall )/(Precision +Recall )
3.2 代码示例`#绘制roc曲线
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve
from matplotlib.font_manager import FontProperties
#中文字体
font = FontProperties(fname=‘C:\Windows\Fonts\Dengb.ttf’,size=19)
y_true = [0,1,1,0,1,1,1,0]
y_prep = [0,1,1,1,0,0,1,0]
FP,TP,_ = roc_curve(y_true,y_prep)
FP,TP, _=roc_curve(y_true, y_prep)
plt.title(“roc曲线”,fontproperties=font)
plt.plot([0,1],[0,1],‘r–’)
plt.xlabel(‘FP’)
plt.ylabel(‘TP’)
plt.show()

其他概念代码展示如下

总结
理解赛题,才能更好做预测分析
做任何事情,必须弄清楚做什么,了解工作背景,知道需要完成的目标,以及如何呈现结果,因此对赛题的深入理解可以事半功倍!
89

被折叠的 条评论
为什么被折叠?



