金融风控训练营 task1赛题理解 学习笔记
本学习笔记为阿里云天池金融风控训练营task1-赛题理解的学习内容
一、学习知识点概要
文章目录
二、学习内容
1. 比赛背景
-
金融风控的个人信贷
-
根据贷款申请人的数据建立模型→预测金融风险,预测是否有违约的风险→判断是否可以通过贷款
-
分类问题
-
在已知类别标号的样本中,训练一种分类器,使得能对未知的样本进行分类
-
一种有监督的学习
-
建立一种分类模型来描述预定的数据集或概念集,通过分析由属性描述的数据库元组来构造模型
-
目的:使用分类对新的数据集进行划分
-
主要涉及:分类规则的准确性、过拟合、矛盾划分的取舍等
-
-
数据量庞大
-
提供的数据:抽取80万条作为训练集,20万条作为测试集A,20万条作为测试集B
-
对employmentTitle、purpose、postCode和title等信息进行脱敏
-
2. 数据概况
在比赛页面会有对应的数据介绍,匿名特征除外(未告知的数据列所属的性质的特征列)
3. 预测指标
-
比赛采用AUC作为评价指标
ROC曲线下与坐标轴围成的面积
-
金融风控预测类常见的评估指标有:
- KS
- ROC
- AUC
4. 代码学习
- 使用pandas读取数据:
-
使用wget将数据下载到dsw
-
直接使用pandas进行读取
df = pd.read_csv('xxxxx') #放网络链接,读取速度比较慢,需要等待一段时间
-
使用shape获得行列
df.shape ==> (行,列)
-
混淆矩阵
导库
from sklearn.metrics import confusion_matrix
使用
confusion_matrix(y_true,y_pred)
-
计算accuracy
导库
from sklearn.metrics import accuracy_score
使用
accuracy_score(y_true, y_pred)
-
计算Precision,Recall,F1-score
导库
from sklearn import metrics
使用
metrics.precision_score(y_true, y_pred)
使用
metrics.recall_score(y_true, y_pred)
使用
metrics.f1_score(y_true, y_pred)
-
P-R曲线
导库
from sklearn.metrics import precision_recall_curve
使用
precision, recall, thresholds = precision_recall_curve(y_true, y_pred)
thresholds 阈值
再使用 plt 进行绘图
-
ROC曲线
导库
from sklearn.metrics import roc_curve
使用
FPR,TPR,thresholds=roc_curve(y_true, y_pred)
-
AUC
导库
from sklearn.metrics import roc_auc_score
使用
roc_auc_score(y_true, y_scores)
-
KS值
在实际操作中使用ROC曲线配合一起求出
导库
from sklearn.metrics import roc_curve
使用
FPR,TPR,thresholds=roc_curve(y_true, y_pred)
5. 需要储备的知识点
-
pandas numpy库
-
模型评估指标AUC
取值范围:0.5~1
AUC→1.0,检测方法真实性越高
等于0.5时,真实性最低,无应用价值
- 混淆矩阵
-
预测值为正例 P(Positive)
-
预测值为反例 N(Negative)
-
预测值与真实值相同 T(True)
-
预测值与真实值相反 F(False)
真实值 预测值 正例 反例 正例 TP 真正例 FN 假反例 反例 FP 假正例 TN 真反例 -
准确率(常用的一个评价指标)
-
精确率/查准率
-
召回率/查全率
-
F1 Score 精确率和召回率相互影响
精确率升高则召回率下降,召回率升高则精确率下降
于是,P-R曲线(描述精确率和召回率变化)
-
ROC 空间
-
TPR : 在所有实际为正例的样本中,被正确地判断为正例之比率
T P R = T P T P + F N TPR = \frac{TP}{TP + FN} TPR=TP+FNTP -
FPR : 在所有实际为负例的样本中,被错误的藕断为正例之比率
F P R = F P F P + T N FPR = \frac{FP}{FP + TN} FPR=FP+TNFP
-
-
K-S曲线
纵轴:真正例率和假正例率 横轴:选定的阈值KS
K S = m a x ( T P R − F P R ) KS = max(TPR - FPR) KS=max(TPR−FPR)
在一定范围内,KS值越大,模型的区分能力越强(太高了,可能出现异常,需要去检查模型是否是过拟合了)KS(%) 好坏区分能力 20以下 不建议采用 20-40 较好 41-50 良好 51-60 很强 61-75 非常强 75以上 过于高,疑似存在问题
三、学习问题与解答
-
遇到的困难:
刚看到题目无从下手
-
解决方法:
先了解整个比赛的操作,浏览提供的资料,再打开task1静下心一句一句看
看不懂的到Google/优快云等进行查找,和队友进行讨论学习
细分步骤进行学习
四、学习思考与总结
将困难划分成小困难,将小困难划分为简单的task,每天完成一点,就比别人多优秀一点。
遇到不会的,善于使用引擎进行搜索。
【笔记比较简单,主要记录了关键语句,方便后期快速查询、记忆起相应的知识点】