CN117216506A - 模型验证方法及装置、存储介质、电子设备 - Google Patents
模型验证方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN117216506A CN117216506A CN202311152934.2A CN202311152934A CN117216506A CN 117216506 A CN117216506 A CN 117216506A CN 202311152934 A CN202311152934 A CN 202311152934A CN 117216506 A CN117216506 A CN 117216506A
- Authority
- CN
- China
- Prior art keywords
- data
- verification
- model
- target model
- verifying
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 289
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000012549 training Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 28
- 238000009826 distribution Methods 0.000 claims description 23
- 238000010200 validation analysis Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 238000005096 rolling process Methods 0.000 claims description 16
- 238000010276 construction Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000000876 binomial test Methods 0.000 description 12
- 238000000546 chi-square test Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 125000000205 L-threonino group Chemical group [H]OC(=O)[C@@]([H])(N([H])[*])[C@](C([H])([H])[H])([H])O[H] 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007477 logistic regression Methods 0.000 description 3
- 206010025482 malaise Diseases 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种模型验证方法及装置、存储介质、电子设备,其中,该方法包括:确定目标模型的验证数据,其中,验证数据包括以下至少之一:目标模型的数据集,目标模型的运行参数;按照验证数据中包括的数据的数据类型加载验证数据;利用加载的验证数据对目标模型的架构和运行性能进行验证。通过本申请,解决了相关技术中对模型的验证效率低的问题,达到提高模型验证效率的效果。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种模型验证方法及装置、存储介质、电子设备。
背景技术
目前市面上还没有现成的闭源或开源的可自动化完成模型验证的装置。例如,银行模型验证人员通过编写统计分析系统(Statistical Analysis System,简称为SAS)代码完成对模型的投产前和投产后验证。SAS是在银行业应用最广泛的统计和数据分析软件,使用SAS可以完成对模型关键定义、数据质量、建模过程、建模结果的验证,但需要模型验证人员完成大量SAS代码编写工作,需要用户熟练掌握数据库表加工、统计学原理、数据挖掘方法、机器学习算法和模型验证方法论等技术和理论知识。模型验证中涉及到的验证方法和指标,例如,针对评分卡模型的账龄分析、滚动率分析、变量分布分析、相关性分析和共线性诊断、WOE、IV、KS、AUC、PSI、卡方检验、二项检验、排序性检验等等,均需要通过代码编写开发相应的功能单元,对模型验证人员构成较高技术门槛,且自动化程度较低,严重影响模型验证效率。
发明内容
本申请实施例提供了一种模型验证方法及装置、存储介质、电子设备,以至少解决相关技术中对模型的验证效率低的问题。
根据本申请的一个实施例,提供了一种模型验证方法,包括:确定目标模型的验证数据,其中,上述验证数据包括以下至少之一:上述目标模型的数据集,上述目标模型的运行参数;按照上述验证数据中包括的数据的数据类型加载上述验证数据;利用加载的上述验证数据对上述目标模型的架构和运行性能进行验证。
根据本申请的另一个实施例,提供了一种模型验证装置,包括:第一确定模块,用于确定目标模型的验证数据,其中,上述验证数据包括以下至少之一:上述目标模型的数据集,上述目标模型的运行参数;第一加载模块,用于按照上述验证数据中包括的数据的数据类型加载上述验证数据;第一验证模块,用于利用加载的上述验证数据对上述目标模型的架构和运行性能进行验证。
在一个示例性实施例中,上述第一确定模块,包括:第一接收单元,用于通过客户端接收输入的对上述目标模型进行验证的验证参数;第一保存单元,用于按照JS对象简谱的数据格式保存上述验证参数,得到上述验证数据。
在一个示例性实施例中,上述第一加载模块,包括:第一加载单元,用于在上述验证数据中包括上述目标模型的数据集的情况下,从存储上述验证数据的数据库中加载上述目标模型的数据集,其中,上述数据集包括上述以下至少之一:训练上述目标模型的训练数据集,验证上述目标模型的验证数据集,监控上述目标模型运行的运行数据集。
在一个示例性实施例中,上述第一验证模块,包括:第一获取单元,用于获取上述数据集所在的第一数据表的表头字段和元数据信息,其中,上述表头字段中包括上述目标模型的数据集的属性信息,上述元数据信息中包括上述数据集的数据信息;第一验证单元,用于利用上述表头字段和元数据信息对上述数据集的数据质量和数据分布进行验证,以验证上述目标模型的架构和运行性能。
在一个示例性实施例中,上述第一验证模块,包括:第一确定单元,用于在上述数据集包括训练上述目标模型的训练数据集的情况下,利用上述训练数据集确定上述目标模型的滚动率和账龄;第二验证单元,用于利用上述滚动率和上述账龄对上述目标模型的架构和运行性能进行验证,其中,上述滚动率用于验证上述目标模型对目标对象的分类,上述账龄用于验证上述目标对象的分类变化周期。
在一个示例性实施例中,上述第一加载模块,包括:第二加载单元,用于在上述验证数据中包括上述目标模型的运行参数的情况下,从存储上述验证数据的数据库中加载上述运行参数,其中,上述运行参数包括以下至少之一:上述目标模型的属性信息,构建上述目标模型的过程中生成的模型信息。
在一个示例性实施例中,上述第一验证模块,包括:第三验证单元,用于在上述验证数据包括上述目标模型的数据集和上述目标模型的运行参数的情况下,利用上述运行参数验证上述数据集的变量,以验证上述目标模型的架构和运行性能。
在一个示例性实施例中,上述第一验证模块,包括:第一重现单元,用于在上述验证数据包括上述目标模型的运行参数的情况下,利用上述运行参数重现上述目标模型的构建过程;第四验证单元,用于基于上述构建过程验证上述目标模型的区分性、稳定性和准确性,其中,上述区分性用于验证上述目标模型对目标对象进行分类的能力,上述稳定性用于验证上述目标模型中的数据集的分布情况,上述准确性用于验证上述目标模型预测的能力。
在一个示例性实施例中,上述装置还包括:第一设置模块,用于利用加载的上述验证数据对上述目标模型的架构和运行性能进行验证之后,将验证结果设置在验证文档中,生成验证报告,其中,上述验证报告中包括以下至少之一:上述验证结果的目录数据,上述验证结果的分析数据,上述验证结果的属性数据。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于确定了目标模型的验证数据,并按照验证数据中包括的数据的数据类型加载验证数据;利用加载的验证数据对目标模型的架构和运行性能进行验证。并不需要模型验证人员进行代码编写,降低了模型验证的技术门槛,提高了模型验证的效率,避免由于模型带病运行而造成的模型风险。因此,可以解决相关技术中对模型的验证效率低的问题,达到提高模型验证效率的效果。
附图说明
图1是本申请实施例的一种模型验证方法的移动终端的硬件结构框图;
图2是根据本申请实施例的模型验证方法的流程图;
图3是根据本申请实施例的加载验证数据的流程图;
图4是根据本申请实施例的验证内容的示意图;
图5是根据本申请实施例的验证系统的整体流程图;
图6是根据本申请实施例的PSI分箱信息的示意图;
图7是根据本申请实施例的WOE分箱信息的示意图;
图8是根据本申请实施例的转移概率矩阵示意图;
图9是根据本申请实施例的账龄分析的示意图;
图10是根据本申请实施例的变量选择算法框架结构图;
图11是根据本申请实施例的模型评分变量二项检验的示意图;
图12是根据本申请实施例的模型构建的流程图;
图13是根据本申请实施例的自动化模型报告和目录的示意图;
图14是根据本申请实施例的模型滚动率分析的示意图;
图15是根据本申请实施例的模型区分性的示意图;
图16是根据本申请实施例的模型验证装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的一种模型验证方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的模型验证方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种模型验证方法,图2是根据本申请实施例的模型验证方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定目标模型的验证数据,其中,验证数据包括以下至少之一:目标模型的数据集,目标模型的运行参数;
步骤S204,按照验证数据中包括的数据的数据类型加载验证数据;
步骤S206,利用加载的验证数据对目标模型的架构和运行性能进行验证。
其中,上述步骤的执行主体可以为终端、服务器、终端或服务器中设置的具体处理器,或者与终端或者服务器相对独立设置的处理器或者处理设备等,但不限于此。
通过上述步骤,由于确定了目标模型的验证数据,并按照验证数据中包括的数据的数据类型加载验证数据;利用加载的验证数据对目标模型的架构和运行性能进行验证。并不需要模型验证人员进行代码编写,降低了模型验证的技术门槛,提高了模型验证的效率,避免由于模型带病运行而造成的模型风险。因此,可以解决相关技术中对模型的验证效率低的问题问题,达到提高模型验证效率的效果。
可选地,目标模型包括但不限于是进行数据处理的模型,例如,银行业务中涉及到的数据分析模型,数据获取模型,数据处理模型,数据查询模型等。
可选地,目标模型的数据集包括但不限于训练模型用的训练数据集、样本外验证数据集、时间外验证数据集等。目标模型的运行参数包括但不限于是模型名称、验证日期、数据库连接串信息、评分变量名、因变量名、模型变量及类型、逾期状态、PSI分箱信息数据集名、WOE分箱信息数据集名、缺失率阈值、水平数阈值、VIF阈值、pearson阈值、IV阈值、AUC阈值、KS阈值、建模算法参数、卡方检验显著性水平、二项检验显著性水平、挑战者模型验证选项等。
可选地,模型验证作为模型风险管理的关键职责,贯穿于模型投产前和投产后的不同阶段。有效且科学的模型验证可以确保模型构建无误以及上线后的正确使用,进而降低模型风险可能会给金融机构带来的财务损失、决策损失和声誉损失,全面提升业务价值。
在一个示例性实施例中,确定目标模型的验证数据,包括:通过客户端接收输入的对目标模型进行验证的验证参数;按照JS对象简谱的数据格式保存验证参数,得到验证数据。
可选地,验证参数是自定义配置的。验证数据的数据格式如下所示:
validation_params=
{
"model_name":"fast_loan",
"date":"2023-01-11",
"database":"ccb_db",
"user":"yangjun",
"password:"111111",
"train_data":"fast_loan_train",
"oos_data":"fast_loan_oos",
"oot_data":"fast_loan_oot",
"score":"p",
"response":"bad_status",
"num_vars":['var_n1','var_n2','var_n3','var_n4'...],
"char_vars":['var_c1','var_c2','var_c3','var_c4'...],
"default_status":['m0','m1','m2','m3','m4','m5','m6','m7','m7+'...],
"psi_table":"fast_loan_psi_table",
"woe_table":"fast_loan_psi_table",
"missing_thres":0.8,
"level_thres":50,
...
}
本实施例通过JS格式保存验证数据,增加了验证数据可执行性。提高了对模型进行验证的效率。
在一个示例性实施例中,按照验证数据中包括的数据的数据类型加载验证数据,包括:在验证数据中包括目标模型的数据集的情况下,从存储验证数据的数据库中加载目标模型的数据集,其中,数据集包括以下至少之一:训练目标模型的训练数据集,验证目标模型的验证数据集,监控目标模型运行的运行数据集。
可选地,利用加载的验证数据对目标模型的架构和运行性能进行验证,包括:获取数据集所在的第一数据表的表头字段和元数据信息,其中,表头字段中包括目标模型的数据集的属性信息,元数据信息中包括数据集的数据信息;利用表头字段和元数据信息对数据集的数据质量和数据分布进行验证,以验证目标模型的架构和运行性能。
可选地,可以采用GPHDFS技术从Greenplum数据库将数据分块并行加载至HDFS中。如图3所示,是本实施例中加载验证数据的流程图,包括以下步骤:
S301,创建HDFS数据目录;
S302,获取GP数据库的连接,从json文件中获取评分变量名、因变量名、模型变量及类型、逾期状态等模型参数;
S303,从GP获取表头字段;
S304,对模型参数和表头字段进行交叉比对,核对元数据信息的正确性。
S305,如果核对无误,接下来将上述表和表头导入HDFS,并清除临时文件;
S306,否则在前端提示有误的模型参数。
本实施例通过加载验证数据,可以实现快速验证模型的目的。
可选地,利用加载的验证数据对目标模型的架构和运行性能进行验证,包括:在数据集包括训练目标模型的训练数据集的情况下,利用训练数据集确定目标模型的滚动率和账龄;利用滚动率和账龄对目标模型的架构和运行性能进行验证,其中,滚动率用于验证目标模型对目标对象的分类,账龄用于验证目标对象的分类变化周期。
可选地,滚动率分析用于验证客户的好坏定义是否合理,基于客户的历史逾期状态计算转移概率矩阵。账龄分析验证模型的表现期长度设定是否合理,即评估客户经过多长时间表现出好或坏。
在一个示例性实施例中,按照验证数据中包括的数据的数据类型加载验证数据,包括:在验证数据中包括目标模型的运行参数的情况下,从存储验证数据的数据库中加载运行参数,其中,运行参数包括以下至少之一:目标模型的属性信息,构建目标模型的过程中生成的模型信息。
可选地,目标模型的属性信息包括目标模型的名称、创建日期、运行日期、所应用的场景等信息。模型信息包括模型变量分布、模型变量相关性矩阵、模型变量方差膨胀因子、模型变量的回归系数及假设检验结果、模型拟合优度假设检验结果、PSI分箱信息、WOE分箱信息等。通过加载目标模型的运行参数,可以对目标模型的运行进行准确高效的验证。
在一个示例性实施例中,利用加载的验证数据对目标模型的架构和运行性能进行验证,包括:在验证数据包括目标模型的数据集和目标模型的运行参数的情况下,利用运行参数验证数据集的变量,以验证目标模型的架构和运行性能。
可选地,验证数据集的变量包括验证数据集的质量,验证数据集的数据分布,验证数据集的获取方式等。通过对数据集的变量的验证,可以准确的验证处模型的构建是否合理,运行性能是否良好等。
在一个示例性实施例中,利用加载的验证数据对目标模型的架构和运行性能进行验证,包括:在验证数据包括目标模型的运行参数的情况下,利用运行参数重现目标模型的构建过程;基于构建过程验证目标模型的区分性、稳定性和准确性,其中,区分性用于验证目标模型对目标对象进行分类的能力,稳定性用于验证目标模型中的数据集的分布情况,准确性用于验证目标模型预测的能力。
可选地,模型区分性使用Python计算训练数据集、样本外验证数据集、时间外验证数据集的AUC、KS统计量,并和加载的AUC、KS统计量进行比对,这两个指标常用于信用风险评分模型,用于评价模型或变量对好坏客户的区分能力。原则上,两者需完全一致,例如,AUC或KS存在差异,在前端告警提示。
可选地,和模型变量通过PSI评估稳定性一样,模型稳定性也使用PSI,使用Python计算训练数据集/样本外验证数据集以及训练数据集/时间外验证数据集上评分变量的PSI统计量。
可选地,模型验证通常结合使用二项检验和卡方检验来验证模型的准确性。一般来说,二项检验和卡方检验的显著性水平设为0.05或0.001。
在一个示例性实施例中,利用加载的验证数据对目标模型的架构和运行性能进行验证之后,上述方法还包括:将验证结果设置在验证文档中,生成验证报告,其中,验证报告中包括以下至少之一:验证结果的目录数据,验证结果的分析数据,验证结果的属性数据。
可选地,验证报告中设置了滚动条,可以滚动的翻阅目录数据。并设置了滚动率分析表,其中包括定义的客户的好坏程度,定义的坏客户对模型的影响。
下面结合具体实施例对本申请进行说明:
本实施例以对应用在银行中的模型的验证为例进行说明。
如图4所示,本对模型验证的内容包括对模型设计、模型数据、建模过程、建模结果以及模型文档的验证。本实施例提供一种基于开源软件的自动化模型投产前和投产后的验证系统,可以自动化地基于模型验证人员设定的数据源、数据表、算法类型、变量名和变量类型、验证指标及其阈值等参数,对模型训练数据集、模型监控数据集和其它模型验证依赖的数据集进行加载、清洗和准备,然后基于上述数据完成对模型关键定义、数据质量、建模过程、建模结果的验证。并通过开发前端,将模型验证的各个功能单元封装成接口和算子,方便模型验证人员构建定制化的流水线。整个系统是基于Python等开源软件进行的开发,可以避免被断供的潜在风险。
如图5所示,模型投产前和投产后的验证系统包括10个单元:模型验证参数配置、模型数据加载、模型历史信息加载、模型关键定义验证、模型数据和变量验证、模型建模过程验证、模型建模结果验证、挑战者模型验证以及模型验证报告生成。下面对每一个单元进行详细说明:
模型参数配置单元,通过前端界面配置模型验证相关参数,这部分参数将保存为json文件。具体包括:模型名称、验证日期、数据库连接串信息、训练数据集/样本外验证数据集/时间外验证数据集、评分变量名、因变量名、模型变量及类型、逾期状态、PSI分箱信息数据集名、WOE分箱信息数据集名、缺失率阈值、水平数阈值、VIF阈值、pearson阈值、IV阈值、AUC阈值、KS阈值、建模算法参数、卡方检验显著性水平、二项检验显著性水平、挑战者模型验证选项等。其在系统内的格式如下:
validation_params=
{
"model_name":"fast_loan",
"date":"2023-01-11",
"database":"ccb_db",
"user":"yangjun",
"password:"111111",
"train_data":"fast_loan_train",
"oos_data":"fast_loan_oos",
"oot_data":"fast_loan_oot",
"score":"p",
"response":"bad_status",
"num_vars":['var_n1','var_n2','var_n3','var_n4'...],
"char_vars":['var_c1','var_c2','var_c3','var_c4'...],
"default_status":['m0','m1','m2','m3','m4','m5','m6','m7','m7+'...],
"psi_table":"fast_loan_psi_table",
"woe_table":"fast_loan_psi_table",
"missing_thres":0.8,
"level_thres":50,
...
}
数据加载单元,从json文件中获取训练数据集/样本外验证数据集/时间外验证数据集名称,采用GPHDFS技术从Greenplum数据仓库将数据分块并行加载至HDFS中,加载过程如图3所示。从json文件中获取评分变量名、因变量名、模型变量及类型、逾期状态等模型参数,在从GP获取表头字段后,对模型参数和表头信息进行交叉比对,核对元数据信息的正确性。如果核对无误,接下来将上述表和表头导入HDFS,并清除临时文件,否则在前端提示有误的模型参数。通过数据加载单元完成训练数据集/样本外验证数据集/时间外验证数据集的加载。
模型信息加载单元,除数据集外,还有部分模型开发过程中生成的模型信息需要导入,包括模型变量分布、模型变量相关性矩阵、模型变量方差膨胀因子、模型变量的回归系数及假设检验结果、模型拟合优度假设检验结果、PSI分箱信息、WOE分箱信息,在后续的数据/变量验证单元、建模过程验证单元和建模结果验证单元需要利用加载的模型信息进行数据处理,生成相应的模型统计量,进行模型信息的交叉比对。PSI分箱信息如图6所示,分数区间对应模型评分的分箱区间边界。
WOE分箱信息如图7所示,variable记录模型变量名,start和end分别对应变量的分箱区间边界,label对应每个分箱的WOE值,fmtname区分数值型和字符型变量。
关键定义验证单元,使用Python对加载的训练数据集进行模型关键定义验证,包括滚动率和账龄分析。滚动率分析用于验证客户的好坏定义是否合理,基于客户的历史逾期状态计算转移概率矩阵,转移概率矩阵如图8所示。由转移概率矩阵可以判断,当客户状态为M3时,迁移到M4的概率趋于稳定,因此可以定义坏客户为M2+,判断该定义和模型开发团队设定的坏客户定义是否一致。如一致,继续进行账龄分析,否则在前端告警提示。
在验证完客户的好坏定义后,接着通过账龄分析验证模型的表现期长度设定是否合理,即评估客户经过多长时间表现出好或坏,以图9为例,通过分析不同时点进件的客户表现,大部分客户的变坏趋势发生在18个月之后,因此可以设定模型表现期为18个月。同样的,判断该定义和模型开发团队设定的表现期长度是否一致。如一致,继续进行数据/变量验证,否则在前端告警提示。
数据/变量验证单元,基于模型信息加载单元加载的模型信息进行如下模型数据和变量的验证:
数据和变量分布,使用Python对训练数据集/样本外验证数据集/时间外验证数据集进行数据质量和数据分布探查,获取样本数、缺失率、水平数、各水平数的占比等统计量。
区分性和稳定性,基于PSI分箱信息,使用Python计算训练数据集/样本外验证数据集以及训练数据集/时间外验证数据集上模型变量的PSI统计量。
PSI统计量衡量了模型变量的跨数据集稳定性,PSI越小,表明验证数据集的分布情况和训练数据集的分布越相似,其计算公式如下:
PSI=∑i(Ai-Ei)*log(Ai/Ei);
基于WOE分箱信息,使用Python计算训练数据集/样本外验证数据集/时间外验证数据集上模型变量的IV统计量。
IV统计量衡量的是变量所含的信息量,其计算公式如下:
IV统计量本质上是WOE(IVi)值的加权求和,其大小反映了该变量对于因变量的预测能力。模型开发时设定IV需大于0.1,PSI需小于0.1。
相关性,由于模型变量存在强相关性会影响模型的准确度和稳定性,故在模型开发时一般结合使用pearson相关系数矩阵及方差膨胀因子(VIF)去除冗余变量。一般设定pearson相关系数上线为0.7,方差膨胀因子上线为10。使用Python计算训练数据集上模型变量的pearson相关系数矩阵以及方差膨胀因子(VIF)。
WOE调整,在模型开发时对变量进行WOE分箱后,需满足以下原则:
好坏比率的变化趋势以单调线性最佳,如果走势符合业务经验,也可以是U型趋势;
1)分箱数不宜太多,一般上线为5箱;
2)各分箱样本比例不宜太小(<5%或坏样本<50),也不宜过度集中(>25%);
3)如相邻两个分箱的WOE值差距小于0.1,建议合并;
4)分箱WOE值通常在-2到+2之间,若过大可能是事后变量;
5)缺失值一般单独分箱和计算WOE值;
使用Python对4.5.1.2计算得到的训练数据集上的WOE按照如上6条标准进行验证,如不满足在前端告警提示。
数据/变量验证结论,针对上述生成的多个模型验证统计量和模型信息加载单元导入的模型信息进行比对。原则上,模型验证需重现模型开发时的模型信息,如有信息无法重现,在前端告警提示。
建模过程验证单元,基于模型信息加载单元加载的模型信息对建模过程进行验证,以机器学习算法中最常用的Logistic回归为例,建模过程是根据预设的显著性水平SLE或SLS为模型加入或移除变量,直到拟合最优模型。图10是Logistic回归的通用变量选择算法框架。
基于模型信息加载单元加载的模型信息,如变量选择算法、SLE/SLS等,利用训练数据集拟合模型。原则上,模型验证需重现最优模型的开发过程,且入模变量和回归系数需完全一致,如有信息无法重现,在前端告警提示。
建模结果验证单元,在模型验证重现模型后,需针对模型从区分性、稳定性和准确性三个角度进行结果验证。
模型区分性,模型区分性使用Python计算训练数据集/样本外验证数据集/时间外验证数据集的AUC、KS统计量,并和模型信息加载单元加载的AUC、KS统计量进行比对,这两个指标常用于信用风险评分模型,用于评价模型或变量对好坏客户的区分能力。原则上,两者需完全一致,如AUC或KS存在差异,在前端告警提示。
模型稳定性,和模型变量通过PSI评估稳定性一样,模型稳定性也使用PSI,使用Python计算训练数据集/样本外验证数据集以及训练数据集/时间外验证数据集上评分变量的PSI统计量。
PSI统计量衡量了评分变量的跨数据集稳定性,PSI越小,表明验证数据集的分布情况和训练数据集的分布越相似,其计算公式如下:
PSI=∑i(Ai-Ei)*log(Ai/Ei);SI以不大于0.1为优,最大不得超过0.25。
模型准确性,模型验证通常结合使用二项检验和卡方检验来验证模型的准确性。一般来说,二项检验和卡方检验的显著性水平设为0.05或0.001。
如图11所示,二项检验是衡量模型预测准确性的验证指标,其通过单边二项检验测试验证数据集评分变量每个分箱内的实际违约率是否低于违约率置信区间的右边界,由于置信区间的左边界表示低于预期的违约率,所以在模型验证中不需要考虑。
假设同一分箱内的违约发生为独立同分布,则可认为该分箱的客户服从二项分布。假设有k个分箱,各个分箱内的验证样本数为nk,预期违约率为PDk,实际违约率为PDk'。则在置信水平q=1-p下,存在临界值其中,/>表示正态分布密度函数的反函数。在二项检验中,需要判断每个分箱的实际违约率与临界值之间的关系,若PD'k>P*,则拒绝该分箱内的客户为独立同分布的假设,即该区间内实际违约率相对于临界值是不够审慎的。因此,对于每一个分箱的验证标准为:
每一个分箱的PDk'需小于等于原则上,只有所有分箱都通过二项检验才认为模型整体通过二项检验,否则在前端告警提示。
卡方检验通过单边检验测试模型实际和预期违约客户数方差是否在限值内:其中,pi代表分箱i样本的预期违约率,即平均违约率;θi代表分箱i中验证样本的违约样本数;ni代表分箱i的验证样本总数。
在卡方检验中,需要假设ni->∞,且不同分箱内和分箱之间的违约发生是相互独立的。根据中心极限定理,对所有的分箱i,当ni->∞时,若所有pi为真实的违约率,则Tk服从于自由度为k的卡方分布,k为分箱编号。因此在卡方检验中可以用自由度为k的卡方分布测试模型实际分布和预期分布的方差是否超过限值。令某一置信度下的卡方分布临界值为/>则卡方检验的标准为:/>原则上,所有分箱结果需整体通过卡方检验,否则在前端告警提示。
挑战者模型验证单元,该单元为可选单元,当模型验证人员在验证参数配置单元勾选使用该单元时,使用Python基于训练数据集构建挑战者模型,并使用样本外验证数据集/时间外验证数据集对挑战者模型进行样本内和跨期样本验证。如图12所示,是模型构建流程图。
在验证参数配置单元获取模型验证人员希望执行的算法类型,包括二分类、多分类、回归等。执行Spark或Python模型构建,根据执行过程中是否有报错信息,装置保存模型参数、代码、文件等信息或提示运行失败。
对二分类场景,使用逻辑回归、决策树、随机森林、GBDT、Xgboost、Lightgbm等算法,对各种算法使用网格搜索或随机搜索进行超参搜索,对各算法得到的最优模型进行模型比较,依据指标包括AUC、KS、召回率、精确率、准确率等统计量,从中选择冠军模型。
对冠军模型从ROC曲线、KS曲线、召回率、精确率、准确率、混淆矩阵等多个维度进行模型评估。
模型验证报告单元,基于上述所完成的对模型关键定义验证、模型数据和变量验证、模型建模过程验证、模型建模结果验证、挑战者模型验证,使用python-docx将所有验证结果插入至统一的投产前和投产后验证文档,自动化生成模型验证报告。报告中自动生成的验证报告和目录、滚动率分析表、模型区分性分别如图13、图14、图15所示。
综上所述,本实施例开发了一种自动化的模型投产前和投产后验证系统,可以自动化地基于模型验证人员设定的数据源、数据表、算法类型、变量名和变量类型、验证指标及其阈值等参数,对模型训练数据集、模型监控数据集和其它模型验证依赖的数据集进行加载、清洗和准备,然后基于上述数据完成对模型关键定义、数据质量、建模过程、建模结果的验证。通过应用该装置可以实现零代码的模型投产前和投产后验证,降低模型验证技术门槛,提高模型验证效率,避免由于模型带病运行而造成的模型风险。
系统完全基于开源软件开发,将模型验证涉及的各环节封装成多个可配置的功能单元,方便模型验证人员构建定制化的模型验证流水线,以适应不同分级分类等级的模型使用不同的模型验证流程。
系统通过使用python-docx可将模型关键定义验证、模型数据和变量验证、模型建模过程验证、模型建模结果验证、挑战者模型验证等功能单元生成的所有验证结果以及对应的模型验证结论插入至事先固化的模型投产前和投产后验证文档,生成模型验证报告,并给出通过与否的验证结论,降低了验证文档编写所耗费的大量重复性劳动。
受验证时间、平台技术、数据完备性和验证人员水平等各方面约束,一般模型验证人员是基于模型开发人员已有的模型开发结果进行模型复现,因此难以完全复现建模时面对众多候选变量的情况下、开发人员逐个挑选变量入模的过程,因此无法说明该最终模型结果是最优或较优选择。针对这个问题,该装置开发和提供了挑战者模型验证单元,可以自动化地基于提供的训练数据集/样本外验证数据集/时间外验证数据集以及其它算法相关参数构建挑战者模型,并完成模型验证供模型验证人员和模型开发人员参考,从而避免模型合规但不是最优的情况发生。
通过以上方式极大地缩减了反复抽数所需耗费的大量时间和带宽开销,并且也不会占用过多的磁盘和redis资源。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种模型验证装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图16是根据本申请实施例的模型验证装置的结构框图,如图16所示,该装置包括:
第一确定模块1602,用于确定目标模型的验证数据,其中,上述验证数据包括以下至少之一:上述目标模型的数据集,上述目标模型的运行参数;第一加载模块1604,用于按照上述验证数据中包括的数据的数据类型加载上述验证数据;第一验证模块1606,用于利用加载的上述验证数据对上述目标模型的架构和运行性能进行验证。
在一个示例性实施例中,上述第一确定模块,包括:第一接收单元,用于通过客户端接收输入的对上述目标模型进行验证的验证参数;第一保存单元,用于按照JS对象简谱的数据格式保存上述验证参数,得到上述验证数据。
在一个示例性实施例中,上述第一加载模块,包括:第一加载单元,用于在上述验证数据中包括上述目标模型的数据集的情况下,从存储上述验证数据的数据库中加载上述目标模型的数据集,其中,上述数据集包括上述以下至少之一:训练上述目标模型的训练数据集,验证上述目标模型的验证数据集,监控上述目标模型运行的运行数据集。
在一个示例性实施例中,上述第一验证模块,包括:第一获取单元,用于获取上述数据集所在的第一数据表的表头字段和元数据信息,其中,上述表头字段中包括上述目标模型的数据集的属性信息,上述元数据信息中包括上述数据集的数据信息;第一验证单元,用于利用上述表头字段和元数据信息对上述数据集的数据质量和数据分布进行验证,以验证上述目标模型的架构和运行性能。
在一个示例性实施例中,上述第一验证模块,包括:第一确定单元,用于在上述数据集包括训练上述目标模型的训练数据集的情况下,利用上述训练数据集确定上述目标模型的滚动率和账龄;第二验证单元,用于利用上述滚动率和上述账龄对上述目标模型的架构和运行性能进行验证,其中,上述滚动率用于验证上述目标模型对目标对象的分类,上述账龄用于验证上述目标对象的分类变化周期。
在一个示例性实施例中,上述第一加载模块,包括:第二加载单元,用于在上述验证数据中包括上述目标模型的运行参数的情况下,从存储上述验证数据的数据库中加载上述运行参数,其中,上述运行参数包括以下至少之一:上述目标模型的属性信息,构建上述目标模型的过程中生成的模型信息。
在一个示例性实施例中,上述第一验证模块,包括:第三验证单元,用于在上述验证数据包括上述目标模型的数据集和上述目标模型的运行参数的情况下,利用上述运行参数验证上述数据集的变量,以验证上述目标模型的架构和运行性能。
在一个示例性实施例中,上述第一验证模块,包括:第一重现单元,用于在上述验证数据包括上述目标模型的运行参数的情况下,利用上述运行参数重现上述目标模型的构建过程;第四验证单元,用于基于上述构建过程验证上述目标模型的区分性、稳定性和准确性,其中,上述区分性用于验证上述目标模型对目标对象进行分类的能力,上述稳定性用于验证上述目标模型中的数据集的分布情况,上述准确性用于验证上述目标模型预测的能力。
在一个示例性实施例中,上述装置还包括:第一设置模块,用于利用加载的上述验证数据对上述目标模型的架构和运行性能进行验证之后,将验证结果设置在验证文档中,生成验证报告,其中,上述验证报告中包括以下至少之一:上述验证结果的目录数据,上述验证结果的分析数据,上述验证结果的属性数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种模型验证方法,其特征在于,包括:
确定目标模型的验证数据,其中,所述验证数据包括以下至少之一:所述目标模型的数据集,所述目标模型的运行参数;
按照所述验证数据中包括的数据的数据类型加载所述验证数据;
利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证。
2.根据权利要求1所述的方法,其特征在于,确定目标模型的验证数据,包括:
通过客户端接收输入的对所述目标模型进行验证的验证参数;
按照JS对象简谱的数据格式保存所述验证参数,得到所述验证数据。
3.根据权利要求1所述的方法,其特征在于,按照所述验证数据中包括的数据的数据类型加载所述验证数据,包括:
在所述验证数据中包括所述目标模型的数据集的情况下,从存储所述验证数据的数据库中加载所述目标模型的数据集,其中,所述数据集包括所述以下至少之一:训练所述目标模型的训练数据集,验证所述目标模型的验证数据集,监控所述目标模型运行的运行数据集。
4.根据权利要求3所述的方法,其特征在于,利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证,包括:
获取所述数据集所在的第一数据表的表头字段和元数据信息,其中,所述表头字段中包括所述目标模型的数据集的属性信息,所述元数据信息中包括所述数据集的数据信息;
利用所述表头字段和元数据信息对所述数据集的数据质量和数据分布进行验证,以验证所述目标模型的架构和运行性能。
5.根据权利要求3所述的方法,其特征在于,利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证,包括:
在所述数据集包括训练所述目标模型的训练数据集的情况下,利用所述训练数据集确定所述目标模型的滚动率和账龄;
利用所述滚动率和所述账龄对所述目标模型的架构和运行性能进行验证,其中,所述滚动率用于验证所述目标模型对目标对象的分类,所述账龄用于验证所述目标对象的分类变化周期。
6.根据权利要求1所述的方法,其特征在于,按照所述验证数据中包括的数据的数据类型加载所述验证数据,包括:
在所述验证数据中包括所述目标模型的运行参数的情况下,从存储所述验证数据的数据库中加载所述运行参数,其中,所述运行参数包括以下至少之一:所述目标模型的属性信息,构建所述目标模型的过程中生成的模型信息。
7.根据权利要求1或6所述的方法,其特征在于,利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证,包括:
在所述验证数据包括所述目标模型的数据集和所述目标模型的运行参数的情况下,利用所述运行参数验证所述数据集的变量,以验证所述目标模型的架构和运行性能。
8.根据权利要求1所述的方法,其特征在于,利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证,包括:
在所述验证数据包括所述目标模型的运行参数的情况下,利用所述运行参数重现所述目标模型的构建过程;
基于所述构建过程验证所述目标模型的区分性、稳定性和准确性,其中,所述区分性用于验证所述目标模型对目标对象进行分类的能力,所述稳定性用于验证所述目标模型中的数据集的分布情况,所述准确性用于验证所述目标模型预测的能力。
9.根据权利要求1所述的方法,其特征在于,利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证之后,所述方法还包括:
将验证结果设置在验证文档中,生成验证报告,其中,所述验证报告中包括以下至少之一:所述验证结果的目录数据,所述验证结果的分析数据,所述验证结果的属性数据。
10.一种模型验证装置,其特征在于,包括:
第一确定模块,用于确定目标模型的验证数据,其中,所述验证数据包括以下至少之一:所述目标模型的数据集,所述目标模型的运行参数;
第一加载模块,用于按照所述验证数据中包括的数据的数据类型加载所述验证数据;
第一验证模块,用于利用加载的所述验证数据对所述目标模型的架构和运行性能进行验证。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至9任一项中所述的方法的步骤。
12.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至9任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311152934.2A CN117216506A (zh) | 2023-09-07 | 2023-09-07 | 模型验证方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311152934.2A CN117216506A (zh) | 2023-09-07 | 2023-09-07 | 模型验证方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117216506A true CN117216506A (zh) | 2023-12-12 |
Family
ID=89034565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311152934.2A Pending CN117216506A (zh) | 2023-09-07 | 2023-09-07 | 模型验证方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117216506A (zh) |
-
2023
- 2023-09-07 CN CN202311152934.2A patent/CN117216506A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951984B (zh) | 一种系统健康度动态分析预测方法及装置 | |
CN105580032B (zh) | 用于降低升级软件时的不稳定性的方法和系统 | |
US20160155136A1 (en) | Auto-encoder enhanced self-diagnostic components for model monitoring | |
CN107168995B (zh) | 一种数据处理方法及服务器 | |
CN114546975B (zh) | 一种结合人工智能的业务风险处理方法及服务器 | |
CN112508456A (zh) | 食品安全风险评估方法、系统、计算机设备及存储介质 | |
CN111815169A (zh) | 业务审批参数配置方法及装置 | |
US20170270546A1 (en) | Service churn model | |
CN114841789B (zh) | 基于区块链的审计审价故障数据在线编辑方法及系统 | |
CN114090556A (zh) | 一种电力营销数据采集方法及系统 | |
US11227288B1 (en) | Systems and methods for integration of disparate data feeds for unified data monitoring | |
CN117216506A (zh) | 模型验证方法及装置、存储介质、电子设备 | |
CN111737319B (zh) | 用户集群的预测方法、装置、计算机设备和存储介质 | |
CN115878400A (zh) | 测试方法、装置、计算机设备、存储介质和程序产品 | |
Klindee et al. | Test cases prioritization for software regression testing using analytic hierarchy process | |
CN115577888A (zh) | 确定企业风险的方法及装置、电子设备和存储介质 | |
CN112529319A (zh) | 基于多维特征的评分方法、装置、计算机设备及存储介质 | |
JP2021170244A (ja) | 学習モデル構築システムおよびその方法 | |
US20150269502A1 (en) | Method and apparatus for finding process deviations and recommending repairs in a business process | |
CN112733897B (zh) | 确定多维样本数据的异常原因的方法和设备 | |
CN111815442B (zh) | 一种链接预测的方法、装置和电子设备 | |
CN117236617B (zh) | 一种企业业务管理方法及系统 | |
CN118227739A (zh) | 服务类别的确定方法、装置、电子设备及可读存储介质 | |
CN116821479A (zh) | 审计程序推荐方法、装置和计算机可读存储介质 | |
Pauwels et al. | ACD2: a tool to interactively explore Business Process Logs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |