DataWhale金融风控组队学习Task01——赛事理解

原文链接:team-learning-data-mining/FinancialRiskControl/Task1 赛题理解.md
阅读笔记

  1. 训练文件.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,为一些贷款人行为计数特征的处理
  2. 分类算法常见的评估指标
    混淆矩阵(Confuse Matrix)
    (1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )
    (2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )
    (3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )
    (4)若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )
from sklearn.metrics import confusion_matrix
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 0]
print('混淆矩阵:\n',confusion_matrix(y_true, y_pred))

在这里插入图片描述

from sklearn.metrics import accuracy_score
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 0]
print('ACC:',accuracy_score(y_true, y_pred))

精确率(Precision) 又称查准率,正确预测为正样本(TP)占预测为正样本(TP+FP)的百分比。

召回率(Recall) 又称为查全率,正确预测为正样本(TP)占正样本(TP+FN)的百分比。
F1 Score 精确率和召回率是相互影响的,精确率升高则召回率下降,召回率升高则精确率下降,如果需要兼顾二者,就需要精确率、召回率的结合F1 Score。
在这里插入图片描述

## Precision,Recall,F1-score
from sklearn import metrics
y_pred = [0, 1, 0, 1]
y_true = [0, 1, 1, 0]
print('Precision',metrics.precision_score(y_true, y_pred))
print('Recall',metrics.recall_score(y_true, y_pred))
print('F1-score:',metrics.f1_score(y_true, y_pred))

P-R曲线(Precision-Recall Curve) P-R曲线是描述精确率和召回率变化的曲线

## P-R曲线
from sklearn.metrics import precision_recall_curve
y_pred = [0, 1, 1, 0, 1, 1, 0, 1, 1, 1]
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 1]
precision, recall, thresholds = precision_recall_curve(y_true, y_pred)

ROC空间将假正例率(FPR)定义为 X 轴,真正例率(TPR)定义为 Y 轴。
TPR:在所有实际为正例的样本中,被正确地判断为正例之比率。
FPR:在所有实际为负例的样本中,被错误地判断为正例之比率。

## ROC曲线
from sklearn.metrics import roc_curve
y_pred = [0, 1, 1, 0, 1, 1, 0, 1, 1, 1]
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 1]
FPR,TPR,thresholds=roc_curve(y_true, y_pred)

AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。

from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
print('AUC socre:',roc_auc_score(y_true, y_scores))
  1. 金融风控预测类常见的评估指标
    KS统计量由两位苏联数学家A.N. Kolmogorov和N.V. Smirnov提出。在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强。 K-S曲线与ROC曲线类似,不同在于
    ROC曲线将真正例率和假正例率作为横纵轴
    K-S曲线将真正例率和假正例率都作为纵轴,横轴则由选定的阈值来充当。 公式如下:
    在这里插入图片描述
    KS不同代表的不同情况,一般情况KS值越大,模型的区分能力越强,但是也不是越大模型效果就越好,如果KS过大,模型可能存在异常,所以当KS值过高可能需要检查模型是否过拟合。
from sklearn.metrics import roc_curve
y_pred = [0, 1, 1, 0, 1, 1, 0, 1, 1, 1]
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 1, 1]
FPR,TPR,thresholds=roc_curve(y_true, y_pred)
KS=abs(FPR-TPR).max()
print('KS值:',KS)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值