金融风控训练营 Task 1 赛题理解 学习笔记

金融风控训练营 Task 1 赛题理解 学习笔记

本学习笔记为阿里云金融风控训练营的学习内容。
学习链接

了解赛题

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

项目地址https://github.com/datawhalechina/team-learning-data-mining/tree/master/FinancialRiskControl

比赛地址:https://tianchi.aliyun.com/competition/entrance/531830/introduction

学习知识点概况

    • 金融风控训练营 Task 1 赛题理解 学习笔记
    • 了解赛题
  • 赛题概况
  • 数据处理
    • 数据读取pandas
  • 预测指标
    • 混淆矩阵
    • ROC(Receiver Operating Characteristic)
  • 赛题流程


赛题概况

比赛要求参赛选手根据给定的数据集,建立模型,预测金融风险。

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

即根据背景信息预测其是否有违约的可能,且要输出违约的可能性。

数据处理

数据来源于:阿里云数据风控训练营
需要对其中train.cv文件进行分析处理作出预测

数据读取pandas

读取数据有两种方法,第一种通过wget命令从链接直接下载数据到dsw,另一种就是可以直接利用pandas读取链接数据。
# 导入数据读取模块
import pandas as pd

方法一:直接下载到dsw本地,这样的好处是后面数据读取会快点,但是直接下载到本地会占用比较多的内存在这里插入代码片


# 下载测试数据集 41.33mb
!wget http://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/FRC/data_set/testA.csv
# 下载训练数据集 166.77mb
!wget http://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/FRC/data_set/train.csv

然后用pandas库李的pd.read_csv()函数读取csv文件
train = pd.read_csv('train.csv') testA = pd.read_csv('testA.csv')
推荐)方法二:直接读取链接数据,这样的好处是不占dsw内存,但是读取速度相对会比较慢点

还是用pd.read_csv()函数
train = pd.read_csv('http://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/FRC/data_set/train.csv')
testA = pd.read_csv('http://tianchi-media.oss-cn-beijing.aliyuncs.com/dragonball/FRC/data_set/testA.csv')

预测指标

竞赛采用AUC作为评价指标。(AUC越大越好) AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积。

AUC介于0.5-1之间
AUC=1为最佳,AUC=0.5则改模型无实用价值

混淆矩阵

金融风控训练营 Task 1 赛题理解 学习笔记_第1张图片
图取于此

ROC(Receiver Operating Characteristic)

ROC空间ROC空间将假正例率(FPR)定义为 X 轴,真正例率(TPR)定义为 Y 轴。
TPR:
T P R = TP/T(TP+FN)
FPR =FP/N(FP+TN)

详情可见

## 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)
plt.title('ROC')
plt.plot(FPR, TPR,'b')
plt.plot([0,1],[0,1],'r--')
plt.ylabel('TPR')
plt.xlabel('FPR')

赛题流程

金融风控训练营 Task 1 赛题理解 学习笔记_第2张图片

#经验 总结
赛题理解是开始比赛的第一步,赛题的理解有助于对竞赛全局的把握。通过赛题理解有助于对赛题的业务逻辑把握,对于后期的特征工程构建和模型选择都尤为重要。

  • 在开始比赛之前要对赛题进行充分的了解。
  • 比赛什么时候开始,什么时候结束,什么时候换B榜数据。
  • 和该比赛有没有类似的比赛可以参考借鉴。
  • 线上提交结果的次数往往是有限的,提前了解每日可以提交的次数。
  • 比赛使用的是什么评价指标,可以选择相同的评价指标作为线下验证的方式。

你可能感兴趣的:(金融风控训练营 Task 1 赛题理解 学习笔记)