数据挖掘组队学习-金融风控0基础入门-Task1
发布时间
阅读量:
阅读量
金融风控0基础入门-Task1 赛题理解
- 贷款违约预测
-
-
背景
-
目的
-
步骤
-
1. 赛题概括
-
2. 数据概括
-
3. 预测指标
-
4. 赛题流程
-
5. 操作
-
- 读取数据
-
6. 拓展 - 评分卡
-
贷款违约预测
背景
金融风控中个人信贷为背景
目的
根据贷款申请人的数据信息,预测其是否有违约的可能,以判断是否通过该贷款,这是一个典型的分类问题。
步骤
- 赛题概括
- 数据概括
- 预测指标
- 分析赛题
1. 赛题概括
根据给定的数据集,建立模型,预测金融风险。
数据情况:
- 总数据量超过120w,包含47列变量信息,其中15列为匿名变量。
- 抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B。
| 数据文件 |
|---|
| sample_submit.csv |
| testA.csv |
| train.csv |
2. 数据概括
train.csv:训练数据集
testA.csv:测试数据集
sample_submit.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,为一些贷款人行为计数特征的处理
3. 预测指标
AUC评价指标 :AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积。
分类算法常见评估指标如下:
- 混淆矩阵(Confuse Matrix)
- 准确率(Accuracy)
- 精确率(Precision)
- 召回率(Recall)
- F1 Score
- P-R曲线(Precision-Recall Curve)
- ROC(Receiver Operating Characteristic)
- AUC(Area Under Curve)
金融风控预测类常见的评估指标如下:
- KS(Kolmogorov-Smirnov) KS统计量由两位苏联数学家A.N. Kolmogorov和N.V. Smirnov提出。在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强。
- ROC
- AUC
4. 赛题流程

5. 操作
读取数据
训练集:
import pandas as pd
# 本地数据地址
url = 'D:\天池数据\金融贷款数据\ '
# 数据获取
train = pd.read_csv(url + 'train.csv')
print('Train data shape:',train.shape)
print(train.head())
python
测试集:
import pandas as pd
# 本地数据地址
url = 'D:\天池数据\金融贷款数据\ '
# 数据获取
testA = pd.read_csv(url + 'testA.csv')
print('TestA data shape:',testA.shape)
print(testA.head())
python
6. 拓展 - 评分卡
评分卡是一张拥有分数刻度会让相应阈值的表。信用评分卡是用于用户信用的一张刻度表。以下代码是一个非标准评分卡的代码流程,用于刻画用户的信用评分。评分卡是金融风控中常用的一种对于用户信用进行刻画的手段!
#评分卡(非标准评分卡):
def Score(prob,P0=600,PDO=20,badrate=None,goodrate=None):
P0 = P0
PDO = PDO
theta0 = badrate/goodrate
B = PDO/np.log(2)
A = P0 + B*np.log(2*theta0)
score = A-B*np.log(prob/(1-prob))
return score
python
全部评论 (0)
还没有任何评论哟~
