| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 天池零基础金融风控比赛小结 -> 正文阅读 |
|
[人工智能]天池零基础金融风控比赛小结 |
1 背景去年九月份参加了天池举办的零基础入门金融风控-贷款违约预测比赛,赛题以金融风控中的个人信贷为背景,要求选手根据贷款申请人的信息预测其是否有违约的可能,以此判断是否通过此项贷款,是一个典型的分类问题。 2 数据赛题数据来源于某信贷平台的贷款记录,总数据量为120W,训练集,测试集A,测试集B数据量各位80W,20W,20W。原数据中包含47列变量信息,主要包括:贷款信息(金额,利率,贷款等级等),贷款人信息(就业信息,收入信息,债务比,FICO(一种信用评分),贷款记录等),贷款人行为计数特征信息(匿名特征)。查询完整的字段表可以访问赛题官网"赛题官网",或点击阅读原文查看我们Blog上的文章。
赛题需要参赛者输出每个测试样本为1(违约)的概率,以AUC为指标评估模型,如若模型输出有:
则代表模型预测id为80001的贷款违约概率为70%。 3 思路和方法3.1 EDA+数据清洗该部分主要为了了解数据类型,各种特征的数据分布和缺失值情况,并了解特征间的相关关系以及特征和目标值之间的相关关系。为接下来对数据进行简单清洗做准备。 特征箱线图 整体而言赛题数据相对干净,通过箱线图发现有一些数值特征中存在明显的异常值,决定使用箱型图+3-Sigma进行去除。对于缺失值,选择先构造一个新字段记录一个样本中缺失特征/总特征数量的比例(missrate),再用纵向填充的方法填充缺失值。此外通过计算Pearson相关系数可以看出有几对相关度很高的变量,例如匿名变n2-n3-n9,保留一个变量即可。 特征相关性热图 3.2 特征工程经过EDA可以发现特征中有较多离散型变量,如贷款等级,工作职称,贷款目的,邮编等等,这些变量需要通过一定的编码方法进行变换。常见的one-hot encoding对于较低维度的变量(unique values < 100)效果不错,但是如果应用在高维变量上(如邮编,职称等),会产生过于稀疏的矩阵,导致每个类别里可以学习的数据过少。所以对于高维变量,一种比较有效的编码方式是target encoding,即用类别对应的标签的期望来代替原始的类别,这样相当于将高维的离散变量转换成了在0-1之间的数字变量。比较常用的定义方式为: 其中p为全部标签的均值,alpha为系数,用于控制该变量对依赖变量的拟合程度。 特征交互方面,简单构造了一些可能有实际意义的交互特征,这一部分的业务经验不多,有经验的小伙伴欢迎在评论区分享一下特征构造的思路。
最后根据EDA中的相关系数计算,去除了有高相关性的特征n2,n3(匿名变量,随机去除)和只有唯一值的特征,加上离散特征一共保留了约150个特征。 3.3 模型训练模型训练部分的思路是尝试构造几个表现较强的单模型,再进行模型融合。一共尝试了 XGBoost, Light-GBM, Catboost以及MLP(4 layers) 4种模型,训练时对模型进行独立的参数优化。CatBoost 模型本身就可以很好地处理离散特征,并且碰巧它也是使用基于target encoding衍生的方法处理高维离散特征,所以使用CatBoost时省略了对离散特征进行预处理的步骤。此外对MLP模型处理之前,额外尝试了使用自动编码器进行变量交互,但是效果明显不如Boosting模型。 为了冲刺竞赛排名,模型融合也比较关键。我选择了表现较强的的三个Boosting模型,用简单加权平均(每个模型权重相同)的方法进行ensemble,让AUC成绩由单模型的0.7342提高到最终的0.7397。 4个单模型的训练表现如下:
从模型对比来看,XGBoost的过拟合现象较为严重,LightGBM 比较均衡,CatBoost泛化能力很好并且表现出众。XGBoost模型中,超参数min_child_weight的值相对其他LightGBM中较小,这可能是模型过拟合的原因。CatBoost的优秀表现主要得益于对类别变量的强大处理能力。MLP模型表现一般,可能是数据规模还没有足够大到让它能够完全发挥挖掘非线性特征的能力。 3.4 特征重要性CatBoost模型特征的SHAP值- Top20 三个Boosting模型对特征重要性的评估略有区别,比较明显的区别是CatBoost模型中,离散数据的重要性普遍较高。以CatBoost的SHAP值为例,最重要的特征有点出乎意料地是申请人职称,此外,贷款期数,贷款子级,地区邮编,债务收入比等也有较高的SHAP值。对于数值型特征而言,三个模型的排序基本相似。在特征工程中构造的少数几个变量如审批时间,有效账户/总账户比也有幸被选进重要度前20。 4 总结这次的赛题是一个经典的机器学习分类预测问题,Boosting模型实乃这种数据量的比赛中的大杀器,其中CatBoost又尤为适合挖掘离散型变量。再利用模型融合,最终在正赛阶段排名榜的Top30。但是由于业务经验有限,在特征工程方面给模型表现带来的提升不多,这应该是后期模型表现优化的主要方向。 5 参考
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/1 8:32:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |