风控违约场景如何预测,来看看这份常见的三种模型实现算法对比

在机器学习算法中,树模型在风控、营销等实际业务场景应用中始终备受青睐。其中对于GBDT集成学习树模型,我们是非常熟悉的,而且在此基础上发展而来的XGBoost、LightGBM更是我们日常建模场景中经常接触到的,可以称为是Boosting算法体系的两大“明星”算法。实际上,在GBDT算法衍生而来的主流树模型“神器”,并未只有XGBoost、LightGBM,还有一个算法也是名副其实的模型“宠儿”,那就是CatBoost。
CatBoost树模型的最大独特之处是可以直接对字符型类别特征进行数据处理,这是XGBoost、LightGBM等很多算法无法实现的。其实,从CatBoost的名称也能看出算法的显著特点,CatBoost的Cat便是Category(类别)的缩写,直观表现出了CatBoost对类别特征处理的特殊能力。而且,除此优点之外,CatBoost与XGBoost、LightGBM相比,在模型训练速度、模型结果精度、任务内存消耗等方面,也并没有都处于劣势,虽然各算法相互之间虽各有自身特点,但CatBoost模型的整体实现效果也是表现比较好的,甚至在某些方面优于其他两种算法。
为了让大家进一步了解并熟悉CatBoost的特点,我们将CatBoost、XGBoost、LightGBM这三个典型Boosting算法汇总,从多个维度来综合分析对比下各算法的性能,具体如下所示:
(1)类别特征处理:XGBoost不支持类别型特征,需要经过OneHot编码处理;LightGBM可以支持类别特征,但需要通过特定参数指定;CatBoost可以直接支持字符串类型的类别特征,无需任何数据预处理或超参数定义。
(2)模型训练速度:LightGBM很明显快于XGBoost,而CatBoost比XGBoost稍快,但也慢于LightGBM。
(3)模型结果精度:XGBoost和LightGBM表现相当,CatBoost效果相对较好,而且很多情形下无需过多参数调整便可获得较好结果。
(4)任务资源消耗:LightGBM远小于XGBoost,CatBoost也小于XGBoost,但大于LightGBM。
(5)模型预测速度:XGBoost和LightGBM表现相当,而CatBoost明显快于XGBoost和LightGBM。
(6)特征缺失处理:XGBoost与LightGBM均可以自动处理特征缺失值,但CatBoost不能自动处理缺失值,需要提前对其完成数据清洗。
(7)图表可视化:CatBoost自带某种可视化工具,可以实时展示相关指标的变化情况。

通过以上介绍,我们大体熟悉了CatBoost树模型算法的整体性能特点,为了体现CatBoost的实现效果,接下来我们围绕信贷风控的贷前场景,根据实例样本数据,采用CatBoost来构建一个信贷违约预测模型。
1、样本数据探索分析
本实例选取的样本数据包含10000条样本与12个特征,部分样本数据样例如图1所示。其中,ID为样本主键;X01~X10为特征变量池,分别表示用户各维度的数据信息,例如银行卡交易、APP设备使用、多头借贷、交通出行等;Target为目标变量,代表样本用户的贷后表现,取值1/0表示是/否违约,各字段对应的特征字典具体如图2所示。
在这里插入图片描述
图1 样本数据样例

在这里插入图片描述

                                 图2 特征字典详情

从数据样例与特征字典可知,建模样本的特征变量中存在字符类别型变量,例如特征X02、X03等。若采用XGBoost等算法来建立模型,必然需要对其进行数据转换才能满足模型的输入条件,最常见的特征编码方式例如OneHot编码、Label编码等。但是,当类别特征的取值情况较多时,OneHot编码会使特征的维度过多,直接影响资源内存消耗与模型训练效率;当类别特征的有序性能并不能很好反映权重关系时,Label编码会较大程度忽略原有特征的真实分布信息。对于以上常见情形,CatBoost算法则无需考虑,原因是算法自身可以直接对类别型特征进行分析处理,不需要类似特征编码的数据预处理环节。

2、模型训练及其评估
针对以上建模样本数据,采用CatBoost算法来建立模型,与XGBoost、LightGBM等其他树模型类似,CatBoost也可以根据不同类型的树来解决分类与回归问题,对应树分别为CatBoostClassifier与CatBoostRegressor。由于本文案例的违约预测场景属于二分类情况,因此需采用CatBoostClassifier树算法来训练拟合模型。为了验证模型效果,我们采用随机抽样方式按照7:3比例,将建模数据拆分训练集与测试集,从而通过训练样本来拟合模型,然后对测试样本进行预测,具体实现过程如图3所示。
在这里插入图片描述
图3 模型训练与预测

对于CatBoost模型的训练过程,输入参数的定义是非常重要的,这里对其部分重要参数进行简单介绍。(1)iterations:树的最大数量,默认1000;(2)learning_rate:学习率,默认0.3;(3)depth:树的深度,取值范围[1,16],默认6;(4)loss_function:损失函数,支持RMSE、Logloss、MAE、Multiclass等,默认RMSE。此外,在模型拟合函数fit()中,cat_features=[]为待处理的类别型特征列表,具体为列的索引或名称,cat_features=[1,2,5,7]代表特征X02、X03、X06、X08。
当模型拟合训练完成后,通过predict()对测试样本test_X进行预测,得到相应标签,label取值为1和0,代表样本用户的预测结果是否违约;同时,采用predict_probs()得到用户的违约概率,取值越大说明违约的可能性越大,当概率值大于0.5则标签label为1,当然对于判断阈值是可以根据实际场景进行调整的。获取了测试样本数据的真实标签train_Y、预测标签pred_Y之后,便可以对模型的综合效果进行评估,这里采用常见分类模型指标KS、AUC、Accuracy来评价,具体过程如图4所示。
在这里插入图片描述
图4 模型评估

为了进一步了解特征变量对模型的贡献大小,可以采用get_feature_importance来实现特征的重要性分析,下面将各个特征变量的重要性系数输出,并通过可视化图表形式来展示具体分布,实现过程如图5所示。
在这里插入图片描述
图5 特征重要性系数

综合以上内容,我们结合当前比较流行的树模型机器学习算法,描述了CatBoost算法的性能特点,同时与XGBoost、LightGBM进行了对比分析,有助于大家在建模实践中可以有效应用。同时,本文围绕具体业务场景与样本数据,介绍了通过CatBoost树模型算法来构建信贷违约预测模型的过程,包括样本探索、模型训练、模型评估、特征分析等建模流程的重要环节。为了便于大家对CatBoost应用的进一步熟悉与了解,本文额外附带了与以上内容同步的python代码与样本数据,供大家参考学习,详情请移至只是星球查看相关内容。
在这里插入图片描述

更多详细内容,有兴趣的童鞋可关注:
在这里插入图片描述

~原创文章

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值