在机器学习算法中,树模型在风控、营销等实际业务场景应用中始终备受青睐。其中对于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. 运用自回归滑动平均模型、灰色预测模型、BP神经网络三种模型分别预测全球平均气温,并进行预测精度对比(附代码、数据)

    大家好,我是带我去滑雪,每天教你一个小技巧!全球变暖是近十年来,人们关注度最高的话题.2022年夏天,蔓延全球40℃以上的极端天气不断刷新人们对于高温的认知,人们再也不会像从前那样认为全球变暖离我们遥 ...

  2. 信贷风控的三种模型策略体系

    互联网金融浩浩荡荡不过十载,时间上看虽然不长,但从影响上规模上不可不谓之巨变.这一点从名字上就可以看出来,广为人知的是互联网金融,而不是曾经许多专家学家们激烈争论的金融互联网.传统金融互联网化实在不足 ...

  3. Python银行风控模型的建立 SVM 决策树 神经网络 三种模型比较

    一.首先要感谢原作者的无私分享 原文网页链接: Python银行风控模型的建立_DG息的博客-CSDN博客_银行风控模型 首先感谢"Python银行风控模型的建立"()这位老师,他 ...

  4. 三种近距离通信技术特点及其应用场景的分析与预测

    一.WIFI 概念:创建于IEEE 802.11标准的无线局域网技术.WiFi(Wireless Fidelity,无线保真技术)即IEEE 802.11协议,是一种短程无线传输技术,能够在数百英尺范 ...

  5. 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )

    文章目录 I . Netty 简介 II . Netty 应用场景 III . Java I/O 模型 IV . BIO 概念 V . BIO 开发流程 VI . BIO 实例 VII . BIO 模 ...

  6. table表头固定4种方法_在常见的3种工资条场景中,教你4种批量打印工资条的方法...

    私信回复关键词[福利]~ 获取丰富办公资源,助你高效办公早下班! 打印工资条估计是财务老师的痛,要把一行行的数据,变成一条条的工资条. 数据很多,表头很复杂. 一个个复制粘贴?那是不可能的! 那怎么办 ...

  7. Java根据路径获取文件内容的三种场景分析

    给出一个资源路径,然后获取资源文件的信息,可以说是非常常见的一种需求场景了,当然划分一下,本文针对最常见的三种状况进行分析 网络地址 本地绝对路径 本地相对路径 I. 实现 1. 思路 http or ...

  8. 电路交换、报文交换、分组交换三种数据交换方式的特点、优点、应用场景以及技术对比分析

    1.电路交换 电路交换是指在呼叫双方在开始通话之前,首先由交换设备在两者之间建立一条专用电路,并且在整个通话期间独占该条电路直到结束.其通信过程一般分为:电路建立阶段.通信阶段.电路拆除阶段三部分.常 ...

  9. ML之FE:金融风控—基于预处理(PSI+标签编码+文本型抽数字+缺失值RF模型拟合填充)+多种筛选指标(PCA/IV值/Gini/熵/丰富度)利用CatBoost实现贷款违约二分类预测案例之详细攻略

    ML之FE:金融风控-基于预处理(PSI+标签编码+文本型抽数字+缺失值RF模型拟合填充)+多种筛选指标(PCA/IV值/Gini/熵/丰富度)利用CatBoost实现贷款违约二分类预测案例之详细攻略 ...

最新文章

  1. POJ 3342 Party at Hali-Bula ——(树型DP)
  2. 帝国cms7.5电脑端手机端多终端解决方案之选择哪种方案
  3. AC自动机的使用案例
  4. 两个list关联合并_算法分享---两个有序链表的合并(C语言)
  5. 【JQuery】 触发元素的change事件
  6. 苹果a10处理器_【突然】苹果宣布2019款iPad降价 发布不到半年最高降500
  7. #大数加减乘除#校赛D题solve
  8. 2022-2028全球食品和饮料行业热转印设备行业调研及趋势分析报告
  9. python进阶到高阶大全(强烈推荐)
  10. 单片机STM8S测量电压电路_50个单片机晶振问题及解决方法小结
  11. Eclipse的版本、下载网址和安装
  12. Microsoft Office Professional Plus 2010在安装中出错 解决办法 安装office2010出错
  13. lsass.exe和smss.exe病毒专杀工具——即磁碟机病毒专杀工具(转载)
  14. SecureCRT界面的菜单栏不见了怎么办?
  15. 逻辑运算符:与,或,非,异或
  16. @Valid对象嵌套List对象校验无效的解决方案
  17. LabVIEW 2018 下载、安装、环境搭建及破解
  18. Git Git 第九章 国内代码托管中心 码云 -- 码云(简介 码云帐号注册和登录 码云创建远程库 IDEA 集成码云 导入GitHub项目)
  19. 【RTX51 Tiny入门】01_RTX51 Full Tiny简介
  20. 博客系统文章的数据库存储方式

热门文章

  1. 雷特智能家居龙海祁:从专业调光到全宅智能,20年专注成就专业
  2. 如何快速为视频添加ai字幕的解决方案
  3. mysql administrator教程_MYSQL administrator 使用
  4. SAP中使用SE91更改消息短文本
  5. 目标检测—基于Yolov3的目标检测项目实战(学习笔记)
  6. 磁盘容量超过64T分配单元大小需要设置64K
  7. 联通项目中的常见术语(BTS、BSC、MSC、VLR、HLR)
  8. C++核心准则C.164:避免隐式转换运算符
  9. 大型电商网站系统架构演变过程
  10. 渲云渲染农场怎么样?云渲染价格便宜吗?