Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】task1 赛题理解 Pytorch - torchvision计算机视觉工具库 linux 重点笔记 Ubuntu18.04安装ROS Melodic(一路到站型) 小甲鱼笔记:数据结构——线性表(一)线性表的顺序存储结构,线性表顺序存储结构的增,删,插入元素操作 实战比特币脚本编程(1) JAVA WEB DAY 01_Tomcat & Servlet Java基础算法之堆排序(Heap Sort) synchronized批量重偏向与批量撤销 终于等到了!阿里P8历时九个月整理,Java面试宝典,核心知识点笔记在此 “数字心脏”动态解析消费密码,国家级消费市场大数据联合实验室在上海先行先试 全世界运行着大约230亿台物联网设备,安全问题如何解? 物联网产业园&thinkplus解决方案中心国学讲座如期而至 都是程序员,凭什么他能站在鄙视链的顶端? 猛男必看!去小红书做程序员是种什么体验 drozer提示[Errno 2] No such file or directory 【STM32】NB-iOT BC35-G模块 AT指令应用设计指导(附代码) 【北京迅为】i.MX6ULL终结者编译LED汇编程序 Linux系统读写网卡PHY寄存器工具 洛谷:P1226 【模板】快速幂||取余运算(分治,数学) 【2020顶会KDD】AutoST:面向时空预测的高效神经网络学习模型 C/C++实现并查集disjoint_set的模板(带路径压缩优化) 实现一个百万级推送服务,除了它,还有谁 “健康守护者”——STM32标准库和HAL库的比较 程序员被公司辞退12天后,前领导要求回公司讲清代码,结果懵了 RTTR实现C++反射(1)集成rttr库 lotus node 远程运行 CCF历年4,5题收录 N卡 RTX3070/RTX3080/RTX3090挖矿算力推测 最高算力86MH 理论+实验:MySQL索引、事物与存储引擎 PostgreSQL JOIN 多表查询 TP框架实现Excel批量导入数据库数据 MySQL中的列转行 这次是真拯救了我,MySQL索引优化,explain讲得非常清楚了 Oracle快速入门(PLSQL编程) MySQL字符串拼接、截取 MySQL事务管理及存储引擎 《浪姐》万茜点赞宁静、郁可唯黑贴坐实?盗号者和程序员是背锅侠 程序员被公司辞退12天后,前领导要求回公司讲清代码,结果懵了 易语言大漠多线程foobar在游戏多窗口中时时显示输出信息 非科班,自学两年,复盘两个月,侥幸拿到头条、阿里offer 2020年全国数学建模大赛B题源代码以及模型的建立 (2) 2020年数学建模-校园供水系统智能管理 windows破解锁屏密码(亲测有效:再也不怕别人锁屏防你啦!) 清华大佬力荐的JVM学习路线+实战笔记+阿里真题,嚼碎吃透吊打面试官 打造多模块+高可用+高扩展Spring Cloud版分布式电商项目源码分享 Python爬虫入门教程 89-100 定个小目标,先用Python爬个一亿B站用户 五大分布式事务,你了解多少? 2020-09-12 九大核心专题,630页内容,熬夜23天吃透,我收割了3个大厂offer
您的位置:首页 >计算机基础 >

Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】task1 赛题理解

阿里云天池学习赛【金融风控-贷款违约预测】

赛题数据及背景学习目标赛题概况数据概况预测指标预测指标的直接引入sklearn里的常见评测指标 经验总结

赛题数据及背景

阿里云天池学习赛【金融风控-贷款违约预测】 https://tianchi.aliyun.com/competition/entrance/531830/introduction

学习目标

1.理解赛题数据和目标 2.清楚评分体系

赛题概况

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

数据概况

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新产品不公开可用的策略_代码=2n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理

预测指标

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

预测指标的直接引入

因个人专业知识有限,不能很好的给大家解释AUC的定义 小白如何快速进行对自己预测的结果进行评价是个很重要的问题 这里推荐给大家一个如何快速进行评价的方法 引入sklearn.metrics 里面提供了大部分评价的方法可以直接进行预测结果的评估

sklearn里的常见评测指标

评价指标 分类问题(Classification)函数(评价指标详细内容点击查看官方文档)评价侧重点accuracymetrics.accuracy_score正确预测的样本数占总预测样本数的比值average_precisionmetrics.average_precision_score所有预测为正确样本的样本中有多少是真正的正确样本f1metrics.f1_scoreF值是精确率1和召回率2的均值f1_micrometrics.f1_score通过先计算总体的TP3,FN4和FP5的数量,再计算F1f1_macrometrics.f1_score先计算出每个类别的F1值,然后去平均,比如下面多分类问题,总共有1,2,3,4这4个类别,我们可以先算出1的F1,2的F1,3的F1,4的F1,然后再取平均(F1+F2+F3+4)/4f1_weightedmetrics.f1_score先计算出每个类别的F1值,然后与对应类别标签所占的样本比例相乘,然后相加最后得到f1_weightedf1_samplesmetrics.f1_score计算每个实例的指标,并找到其平均值neg_log_lossmetrics.log_loss即log_loss(y_true,y_pred),它将生成一个正分数-分数越小,性能越好。precision etc.metrics.precision_score精确度1计算recall etc.metrics.recall_score召回率2计算roc_aucmetrics.roc_auc_score根据预测分数计算 特性曲线(ROC AUC) 下的面积。(本次比赛所用评价指标) 评价指标 聚类问题(Clustering)函数(评价指标详细内容点击查看官方文档)评价侧重点adjusted_rand_scoremetrics.adjusted_rand_score通过考虑所有样本对并计算在预测的聚类和真实的聚类中分配在相同或不同聚类中的对来计算两个聚类之间的相似性度量 评价指标 回归问题(Regression)函数(评价指标详细内容点击查看官方文档)评价侧重点neg_mean_absolute_errormetrics.mean_absolute_error平均绝对误差回归损失neg_mean_squared_errormetrics.mean_squared_error均方误差回归损失neg_median_absolute_errormetrics.median_absolute_error中值绝对误差回归损失r2metrics.r2_scoreR ^ 2(确定系数)回归得分函数。

本次比赛使用的评价指标是 roc_auc 使用方法如下

import numpy as npfrom sklearn.metrics import roc_auc_scorey_true = np.array([0, 0, 1, 1])y_scores = np.array([0.1, 0.4, 0.35, 0.8])roc_auc_score(y_true, y_scores)# 评价分数为0.75

其他评价指标函数的详细信息,可点击对应函数名称查阅详细的解释文档,这里就不再赘述

经验总结

在开始比赛之前对赛题的目标,评价指标进行了解。比赛什么时候开始,什么时候结束,什么时候换B榜数据。 A榜:提交预测结果文件,返回分数进行排名,仅作初步判断 B榜:最终线上成绩与排名以B榜成绩与排名为准 采用AB榜的主要原因是考察机器学习模型的泛化能力 简单来说就是测试集被划分成A与B,提交“测试集”的所有预测结果(包含A和B),排行榜上仅显示测试集A的成绩,即A榜,最终成绩还是需要看B榜成绩。和该比赛有没有类似的比赛可以参考借鉴。线上提交结果的次数往往是有限的,提前了解每日可以提交的次数,有的比赛可能会限制总提交次数。比赛使用的是什么评价指标,可以选择相同的评价指标作为线下验证的方式。可以将训练集按照比例再次划分为训练集与测试集,提升模型的泛化能力。

END by xiaoc【Datawhale学习群名称:南山有鸢】


郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。