风控并行组合模型及其额度定价场景实践

news2025/1/11 18:46:48

昨天,我们分享过一篇文章《串行组合模型及信用评估场景实践》,里边详细介绍了串行组合模型的原理逻辑,以及在信用风险评估场景的具体实现过程。同时,从模型串联数量、排列顺序等多个维度验证了串行组合模型的合理性与有效性,不仅体现在串联模型相比单一模型的效果更佳外,而且还说明模型串行顺序有利于综合模型性能的调优,从而有效证明了串行组合模型在实际建模场景的价值。
作为组合模型内容的姊妹篇,本文将为大家介绍下并行组合模型的实现过程,以及在实际业务场景中的应用效果。

1、并行组合模型原理
并行组合模型与串行组合模型同理,也是多个单一模型的叠加融合结果,主要区别在于各个子模型的流转过程是以并列的方式呈现,具体示意图如图1所示。其中,模型1/2/3的输入数据均为原始样本,输出数据为各模型的预测结果,最终总模型是将各个子模型的输出数据以投票(分类)或代数(回归)的方式进行汇总融合,这种方式也是并行组合模型的最大优点,可以将各个单一模型的误差得以平衡,不会因某个模型的误差较大而过度影响最终的决策效果。
在这里插入图片描述
图1 并行组合模型示意图

对于模型融合环节,当模型为分类问题时,例如模型预测结果为二分类(0/1)或多分类(0/1/2),则综合模型最终结果的生成通常采用投票法,具体包括简单投票、加权投票等;当模型为回归问题时,例如模型预测结果为0至1000范围的连续数值,则综合模型最终结果的生成通常采用代数法,具体包括直接平均、加权求和等。多个模型融合的输出数据(投票或平均),便是综合模型的决策分析结果。
并行组合模型与串行组合模型类似,根据模型算法的类型不同,可以分为同类并行组合模型、异类并行组合模型。同时,异类组合形式在实际业务中应用场景较多,以回归机器学习算法为例,常采用的模型包括线性回归、支持向量机回归、K近邻回归、决策树回归、XGBoost回归、随机森林回归等。下面我们将围绕信贷风控典型的额度定价授信场景,结合具体的实例样本数据,来构建一个异类并行组合模型。

2、实例样本数据描述
针对异类并行组合模型的算法类型不同,本文选取线性回归、XGBoost、决策树、K近邻、随机森林共5个算法来实现模型融合。同时,由于本场景的额度定价为回归问题,因此以上各机器学习模型均采用回归算法。本实例的样本数据包含10000条样本与9个字段,部分数据样例如图2所示。其中,id为样本主键,credit_apply、call_total等7个特征为X变量池,credit_amount为目标变量Y,具体特征字典如图3所示。
在这里插入图片描述
图2 样本数据样例

在这里插入图片描述
图3 样本特征字典

根据以上样本数据,现构建一个贷前额度定价授信模型,即通过credit_apply、call_total、travel_index等7个特征变量对目标变量credit_amount进行拟合训练。其中,特征变量的简单描述性统计分布eda结果如图4所示。为了便于了解目标变量credit_amount取值分布情况,我们通过图5的代码实现过程,来完成目标变量的直方图输出,具体可视化分布结果如图6所示。
在这里插入图片描述
图4 特征变量eda分布

在这里插入图片描述
图5 目标变量可视化实现

在这里插入图片描述
图6 目标变量直方图分布

3、特征变量性能分析
为了有效避免模型训练后出现较强的模型共线性现象,在模型变量拟合之前,有必要对各特征变量进行简单的特征工程分析,例如特征相关性、特征共线性等,这里分别采用pearson系数与VIF系数来进行评价,具体分布结果如图7、8所示(实现过程详见本文代码附件)。
在这里插入图片描述
图7 特征pearson系数
在这里插入图片描述

                         图8 特征VIF系数

由以上结果可知,特征变量之间的相关性系数整体表现偏低,最大系数值不超过常见阈值0.5,说明特征之间的相关性表现较弱;特征VIF系数值最大值仅有2.96617,远低于业务中的判断阈值10。因此,本样本数据的特征字段相互没有较强的相关性,有利于后续模型训练环节的变量拟合。

4、单一模型拟合训练
本文实现的异类模型并行组合,采用的机器学习回归算法分别为线性回归LinR、XGBoost、决策树Tree、K近邻KNN、随机森林RF共5个类型。对于最终并行模型的融合,输入数据为各子模型的预测结果,因此我们需要依次训练拟合各个子模型,并将输出数据分别保存,以作为综合模型的策略数据输入。此外,为了评估综合并行模型的性能优势,我们有必要对各个子模型进行效果评估,这里采用回归模型常见评价指标R2来量化分析。
对于模型构建环节,我们从整体的建模样本数据抽取70%来训练模型,其余30%数据用来测试模型,最后我们分别输出训练集train与测试集test的模型R2指标,除了量化分析模型整体表现之外,重点来对比描述各模型应用的稳定度情况。各个子回归算法模型(LinR、XGB、Tree、KNN、RF)的模型训练与模型评估过程,具体实现分别如图9~13所示。
在这里插入图片描述
图9 线性回归LinR模型

在这里插入图片描述
图10 XGBoost回归模型
在这里插入图片描述
图11 决策树Tree回归模型

在这里插入图片描述
图12 K近邻KNN回归模型

在这里插入图片描述
图13 随机森林RF回归模型

通过以上各子模型的训练与预测,训练集train与测试集test的模型性能指标R2表现具体如图14所示。根据模型拟合优度R2指标评价方法(取值范围0~1,取值越大模型效果越好),可见各模型在训练样本与测试样本的性能表现均较好。
在这里插入图片描述
图14 子模型R2评价指标

5、并行组合模型实现
当各个子模型完成拟合训练后,我们将训练集与测试集的预测结果数据分别进行保存(pred1_Y_trainpred5_Y_train、pred1_Y_testpred5_Y_test),作为并行组合模型的输入数据。对于模型的并行融合,由于本例的额度定价为回归场景,因此可采用简单平均或加权平均的方法来实现,这里通过简单的直接平均来完成,即将各模型的预测结果pred1_Y_train~pred5_Y_train求和,然后再除以子模型数量5,从而得到训练数据的模型并行结果pred_mean_train,测试数据的模型并行与此同理。模型在训练集与测试集的模型并行组合,具体实现过程如图15所示。在这里插入图片描述
图15 模型并行组合实现

模型并行组合后,同样输出综合模型在训练样本与测试样本的评价指标R2,这里将各子模型的性能表现进行汇总分析,具体结果如图16所示。模型并行组合模型的主要优势并非某个维度的性能指标表现很好,而是经过融合的组合模型在应用过程中较为稳定。从表中结果可以看出,对于各子模型与综合模型的整体效果均表现较好,在这种情形下,我们需要重点评估下模型的稳定度情况。因此,这里引入误差指标的量化分析,具体逻辑是指模型在测试集test的R2表现,相对训练集train指标的差异程度。以子模型LinR为例,误差error=abs(1-(0.9951/0.9955))=0.000402,对于其他模型,按照此方法同理实现。从分布结果来看,并行组合模型的误差0.000203相对其他各子模型表现最小,说明综合并行组合模型在训练样本与测试样本的稳定性最好,这也是并行组合模型的优势,可以平衡各子模型的预测误差,从而有效保证模型应用的稳定程度。
在这里插入图片描述
图16 并行模型性能分析

综合以上内容,我们围绕模型并行组合的原理思想,通过信贷额度定价的具体实例场景,实现了并行组合模型的完整建立过程,并通过模型指标验证了并行组合模型的稳定性能优势,从而为实际建模场景的模型优化提供价值参考。为了便于大家对并行组合模型的进一步理解与熟悉,本文额外附带了与以上内容同步且更详细的代码与数据,供大家参考学习,详情请移至知识星球查看相关内容。
在这里插入图片描述

~原创文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

区块链赋能的6G零信任车联网可信接入方案

(一)文章素材摘录于 单位信息|广东工业大学北京邮电 郝敏博士团队 数据来源|电子与信息学报 基金项目|国家重点研发计划 (二)正文 随着三大运营商 5G 套餐于2019年底的相继上线,宣…

【C语言程序设计】实验 6

目录 1. 无理数e 2. 平面镜反数 3. 整数分解质因数 4. 素数回文 5. 阶乘和数 6. 输出星号图案 7. 验证哥德巴赫猜想 1. 无理数e 【问题描述】输入一个正整数&#xff0c;由下式e11/1!1/2!...1/n!求无理数e&#xff0c;保留9位小数。 【输入形式】一个正整数n(<…

pytorch基础操作(三)梯度下降(小批量)计算线性回归

1、线性模型 线性假设是指⽬标&#xff08;房屋价格&#xff09;可以表⽰为特征&#xff08;⾯积和房龄&#xff09;的加权和&#xff0c;如下⾯的式⼦&#xff1a; price warea area wage age b. 其中: warea和wage 称为权重&#xff08;weight&#xff09;&#xff0c;…

JAVA SCRIPT设计模式--结构型--设计模式之Composite组合模式(8)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

进阶 - Git的Bug分支

本篇文章&#xff0c;是基于我自用Linux系统中的自定义文件夹“test_rep”&#xff0c;当做示例演示 具体Git仓库的目录在&#xff1a;/usr/local/git/test_rep Git的Bug分支 软件开发中&#xff0c;bug 就像家常便饭一样。有了 bug 就需要修复&#xff0c;在 Git 中&#xff…

LabVIEW与工具包版本的不兼容问题

前面的文章有介绍过&#xff0c;LabVIEW可以看做是一种编程语言&#xff0c;同时NI也在LabVIEW里提供了非常多的可快速构建专业应用的工具包模块&#xff0c;这些模块有的是用于专业数据采集的&#xff0c;有的是用于图像处理的&#xff0c;还有的可能是工业控制的。个人觉得这…

记一次InputStream流读取不完整留下的惨痛教训

前言 首先&#xff0c;问问大家下面这段流读取的代码是否存在问题呢&#xff1f; inputStream .... try {// 根据inputStream的长度创建字节数组byte[] arrayOfByte new byte[inputStream.available()];// 调用read 读取字节数组inputStream.read(arrayOfByte, 0, arrayOfB…

计算机毕业设计ssm+vue基本微信小程序的健康管理系统 uniapp 小程序

项目介绍 本文介绍了使用微信小程序技术开发健康管理系统的设计与实现过程,首先对实现该系统的技术进行分析,说明选择Java后台技术和MySQL数据库的必要性,然后对基于微信小程序的健康管理系统的需求进行分析。并接着对系统进行设计,包括架构设计、功能设计、数据库设计。最后进…

基于改进遗传算法把电力系统功率损耗降至最低(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;本科计算机专业&#xff0c;研究生电气学硕…

软件测试用例

测试用例为什么要写测试用例测试用例的基本要素QQ登录的测试用例功能正常时异常时界面易用性可移植性性能具体的设计测试用例的方法等价类边界值错误猜测法场景设计法因果图法正交排列测试用例的有效性为什么要写测试用例 测试用例是测试执行的依据测试用例可以复用&#xff0…

分布式多级缓存

学习就是带着问题前行 缓存是什么&#xff1f; 缓存击穿是什么&#xff1f; 缓存雪崩是什么&#xff1f; 如何保证分布式缓存的数据一致性&#xff1f; 如何进行缓存预热&#xff1f; 如何设计缓存热点探测&#xff1f; 曾经问过一个技术修为很高的朋友&#xff0c;为什么…

系统移植 uboot 1

一、uboot概念 1.1 uboot和bootloader关系 1.bootloader:是一系列引导加载程序的统称 &#xff0c;uboot是其中之一。 1.2 uboot特点 1.uboot是由德国DNEX小组进行维护的 2.uboot是一个开源分布式系统 3.uboot支持多种硬件架构平台(ARM/X86/POWERPC) 4.uboot短小精悍 5.…

飞轮效应,中国企业级SaaS的一次自我革命

“数智飞轮”“客户成功”&#xff0c;三年时间&#xff0c;用友YonSuite终于按下了发展的“快进键”&#xff0c;中国企业级SaaS的产业革命也就此开始。 前不久&#xff0c;用友发布了2022年三季报。在公司战略增强公有云订阅业务的前提下&#xff0c;中型企业云服务业务收入…

模拟电路设计(38)---基于LT1173的负压产生电路

今天来介绍下LT1173在buck&#xff08;step-down&#xff09;模式的工作电路。在介绍PWM电路结构时&#xff0c;有一种形式成为buck型&#xff0c;如下所示&#xff1a; 晶体管开关变换器&#xff08;buck&#xff09;电路 LT1173提供了内置开关管的集电极和发射极管脚&#x…

【图像处理OpenCV(C++版)】——2.2 OpenCV之矩阵运算详解(全)

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义&#xff0c;适用于平时学习、工作快…

一篇文章让你认识与学习bash(干货满满)

Linux界存在着这样一种说法&#xff1a;“在Linux的环境下&#xff0c;如果你不懂bash是什么&#xff0c;那么其他的东西就不用学了。”bash的学习是所有命令行模式与未来主机维护与管理的重要基础&#xff0c;所以得认真对待。 一.硬件、内核与shell 1.1 什么是shell? 看下图…

Linux下安装mysql5.7.18

查询mysql的安装文件&#xff1a; find / -name mysql有安装mysql的路径&#xff0c;有是存放MySQL安装包的路径 卸载mysql: 删除安装路劲 rm -rf /opt/mysql删除配置文件 rm -rf /etc/my.cnf删除/etc/init.d/下跟mysql有关的全部文件&#xff0c;一般包括mysql文件或mys…

浅尝Go语言的协程实现

文章目录为什么需要协程协程的本质协程如何在线程中执行GMP调度模型协程并发为什么需要协程 协程的本质是将一段数据的运行状态进行打包&#xff0c;可以在线程之间调度&#xff0c;所以协程就是在单线程的环境下实现的应用程序级别的并发&#xff0c;就是把本来由操作系统控制…

微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.1 搜索、分页

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构25 黑马旅游案例25.1 搜索、分页25.1.1 直接开干25 黑马旅游案例 25.1 搜…

PyTorch~自定义数据读取

这次是PyTorch的自定义数据读取pipeline模板和相关trciks以及如何优化数据读取的pipeline等。 因为有torch也放人工智能模块了~ 从PyTorch的数据对象类Dataset开始。Dataset在PyTorch中的模块位于utils.data下。 from torch.utils.data import Dataset围绕Dataset对象分别从…