训练预测模型的方法、装置、计算机设备及可读存储介质与流程

文档序号:21796884发布日期:2020-08-11 20:47阅读:164来源:国知局
训练预测模型的方法、装置、计算机设备及可读存储介质与流程

本发明涉及机器学习技术领域,具体涉及一种训练预测模型的方法、装置、计算机设备及可读存储介质。



背景技术:

债券违约是指债券发行企业不能按照事先达成的债券协议履行其义务的行为,近年来高发的债券违约现象给个人和投资机构造成了严重的影响,因此,如何预测出具有债券违约风险的企业显得极为重要。现有的债券违约风险预测方式主要依靠信评研究员对发债企业进行评估,但由于人力有限,最终仅依靠研究员所评估的广度是有限的,且人力成本较高、预测效率低下。此外,在现有技术中,还存在通过利用机器学习算法建立债券违约预测模型的方式,但由于存在可用于模型训练的样本数量较少,以及存在正例、负例样本分布不均衡的现象,从而导致了训练出的预测模型的预测准确性不高的问题。



技术实现要素:

本发明的目的在于提供一种训练预测模型的方法、装置、计算机设备及可读存储介质,可以训练出可靠度高且预测准确性好的模型。

根据本发明的一个方面,提供了一种训练预测模型的方法,具体包括以下步骤:

获取用于训练预测模型的正例样本集和负例样本集;其中,所述正例样本集包括:债券违约企业样本、所述负例样本集包括:债券未违约企业样本;

基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,以使用每组中的训练集进行模型训练,并使用对应组中的验证集对训练出的预测模型进行验证;

在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,并分别使用每个训练子集进行模型训练,以训练出n个预测模型;

在使用一组中的验证集对训练出的预测模型进行验证的过程中,使用所述验证集依次对训练出的各个预测模型进行验证,并将验证通过的预测模型用于预测企业是否存在债券违约风险。

可选的,所述基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,具体包括:

将所述正例样本集均分为k个正例样本子集,并将所述负例样本集均分为k个负例样本子集;

不重复的选取一个正例样本子集与一个负例样本子集,并将选取的正例样本子集与负例样本子集合并为参考样本集,从而形成k个参考样本集;

依次将每个参考样本集作为验证集,并将剩余的k-1个参考样本集作为训练集,以确定出k组训练集和验证集。

可选的,所述在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,具体包括:

识别出所述训练集中的债券违约企业样本和债券未违约企业样本;

将所述训练集中的所有债券未违约企业样本均分为n个互斥训练子集,并在每个训练子集中添加所述训练集中的所有债券违约企业样本。

可选的,所述训练子集的个数其中,p为所述训练集中债券未违约企业样本的总数量,q为所述训练集中债券违约企业样本的总数量。

可选的,所述方法还包括:

获取待预测企业的特征参数,并将所述特征参数输入到各个验证通过的预测模型中,以得到各个预测模型的预测结果;

根据所有预测模型的预测结果,按照预设算法,计算出所述待预测企业的最终预测结果;

基于所述最终预测结果判断所述待预测企业是否存在债券违约风险。

根据本发明的另一个方面,还提供了一种训练预测模型的装置,具体包括以下组成部分:

获取模块,用于获取用于训练预测模型的正例样本集和负例样本集;其中,所述正例样本集包括:债券违约企业样本、所述负例样本集包括:债券未违约企业样本;

确定模块,用于基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,以使用每组中的训练集进行模型训练,并使用对应组中的验证集对训练出的预测模型进行验证;

训练模块,用于在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,并分别使用每个训练子集进行模型训练,以训练出n个预测模型;

验证模块,用于在使用一组中的验证集对训练出的预测模型进行验证的过程中,使用所述验证集依次对训练出的各个预测模型进行验证,并将验证通过的预测模型用于预测企业是否存在债券违约风险。

可选的,所述确定模块具体用于:

将所述正例样本集均分为k个正例样本子集,并将所述负例样本集均分为k个负例样本子集;

不重复的选取一个正例样本子集与一个负例样本子集,并将选取的正例样本子集与负例样本子集合并为参考样本集,从而形成k个参考样本集;

依次将每个参考样本集作为验证集,并将剩余的k-1个参考样本集作为训练集,以确定出k组训练集和验证集。

可选的,所述训练模块,具体用于:

识别出所述训练集中的债券违约企业样本和债券未违约企业样本;

将所述训练集中的所有债券未违约企业样本均分为n个互斥训练子集,并在每个训练子集中添加所述训练集中的所有债券违约企业样本。

根据本发明的另一个方面,还提供了一种计算机设备,具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述训练预测模型的方法的步骤。

根据本发明的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述训练预测模型的方法的步骤。

本发明提供的训练预测模型的方法、装置、计算机设备及可读存储介质,通过在模型训练过程中使用k折交叉验证算法以解决可用于模型训练的样本数量较少的技术问题,从而训练出可靠性高的预测模型;此外,在每次交叉验证过程中,还使用easyensemble算法以解决正例样本数量和负例样本数量不均衡的技术问题,从而训练出预测准确性好的预测模型。本实施例利用机器学习算法,完成发债企业的财务基本面分析,从而避免债券踩雷。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为实施例一提供的训练预测模型的方法的一种可选的流程示意图;

图2为实施例一中的五折交叉验证算法中验证集的验证效果实例图;

图3为实施例二提供的训练预测模型的装置的一种可选的程序模块示意图;

图4为实施例三提供的计算机设备的一种可选的硬件架构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例提供了一种训练预测模型的方法,如图1所示,该方法具体包括以下步骤:

步骤s101:获取用于训练预测模型的正例样本集和负例样本集;其中,所述正例样本集包括:债券违约企业样本、所述负例样本集包括:债券未违约企业样本。

具体的,在本实施例中,基于企业的历年财务数据进行模型训练;在样本选取时,选取一定量的债券违约企业样本以及一定量的债券未违约企业样本;针对未违约的企业,选取今年作为预测年,将今年之前的连续x年的历史财务数据作为特征;针对违约的企业,选取违约年作为预测年,将违约年之前的连续x年的历史财务数据作为特征;其中,x为正整数。最终共筛选得到4120家未违约企业和58家违约企业作为建模样本。由此可见,可用于模型训练的样本总数量较少,且正例样本集中的样本数量远远少于负例样本集中的样本数量,存在正例样本数量和负例样本数量不均衡的问题。

步骤s102:基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,以使用每组中的训练集进行模型训练,并使用对应组中的验证集对训练出的预测模型进行验证;其中,k为正整数。

具体的,所述基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,具体包括:

步骤a1:将所述正例样本集均分为k个正例样本子集,并将所述负例样本集均分为k个负例样本子集;

步骤a2:不重复的选取一个正例样本子集与一个负例样本子集,并将选取的正例样本子集与负例样本子集合并为参考样本集,从而形成k个参考样本集;

步骤a3:依次将每个参考样本集作为验证集,并将剩余的k-1个参考样本集作为训练集,以确定出k组训练集和验证集。

优选的,本实施例采用五折交叉验证算法,即k值为5;将正例样本集和负例样本集分别平均划分为5份,并一一配对合并,以形成5个参考样本集;在每一次交叉验证过程中,选取其中的4个参考样本集合并以形成训练集,并将剩余的1个参考样本集作为验证集检验预测效果。

例如,将正例样本集划分为编号为a1至a5的正例样本子集,并将负例样本集划分为编号为b1至b5的负例样本子集,将a1与b1合并为c1、将a2与b2合并未c2、将a3与b3合并为c3、将a4与b4合并为c4、将a5与b5合并为c5,以得到5个参考样本集c1至c5;在使用五折交叉验证算法时,先将c1作为第一组的验证集并将c2至c5合并以作为第一组的训练集,再将c2作为第二组的验证集并将c1、c3、c4、c5合并以作为第二组的训练集,再将c3作为第三组的验证集并将c1、c2、c4、c5合并以作为第三组的训练集,再将c4作为第四组的验证集并将c1、c2、c3、c5合并以作为第四组的训练集,最后将c5作为第五组的验证集并将c1至c4合并以作为第五组的训练集。

步骤s103:在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,并分别使用每个训练子集进行模型训练,以训练出n个预测模型;其中,n为正整数。

具体的,所述在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,具体包括:

步骤b1:识别出所述训练集中的债券违约企业样本和债券未违约企业样本;

步骤b2:将所述训练集中的所有债券未违约企业样本均分为n个互斥训练子集,并在每个训练子集中添加所述训练集中的所有债券违约企业样本。

进一步的,所述训练子集的个数其中,p为所述训练集中债券未违约企业样本的总数量,q为所述训练集中债券违约企业样本的总数量,[]为取整操作。由此可见,在本实施例中将负例样本按照正例样本进行划分,形成正例样本与负例样本的比例为1:1的训练子集。需要说明的是,在实际应用中,也可以按照其他方式划分训练子集,例如,形成正例样本与负例样本的比例为1:2的训练子集。

在本实施例中,由于存在正负例样本不平衡现象,因此在训练模型的过程中将一个训练集中的所有负例样本,即债券未违约企业样本,划分为一系列不相交的子集,并将训练集中的所有正例样本,即债券违约企业样本,分别添加到划分后的各个子集中,这样一个训练集中的少量的正例样本会同时存在于各个训练子集中,使得在充分利用负例样本的同时可以降低正负例样本的不平衡程度。

此外,在本实施例中,使用训练子集对预设的机器学习算法进行模型训练,以得到预测模型;优选的,在本实施例中所使用的机器学习算法具体为xgboost算法,在本实施例中使用了20个可用的财务指标作为xgboost算法的特征变量,分别从盈利能力、偿债能力、运营能力、成长能力、现金流量等方面对发债企业进行了刻画,并提取所有企业在预测时间点之前5年的财务数据,以得到特征空间矩阵。在模型训练过程中,根据样本数据不断调整模型参数,从而训练出预测模型;需要说明的是,本实施例中的预测模型为机器学习中的分类模型,由于如何基于样本数据对机器学习算法进行模型训练为现有技术,故不再对模型训练的过程进行赘述。

步骤s104:在使用一组中的验证集对训练出的预测模型进行验证的过程中,使用所述验证集依次对训练出的各个预测模型进行验证,并将验证通过的预测模型用于预测企业是否存在债券违约风险。

在本实施例中,考虑到原始样本集中的正负例样本的比例更能反映出真实的违约企业与未违约企业的比例,所以将验证集中的所有样本均输入到各个预测模型中以预测违约概率。

优选的,在本实施例中,在一次交叉验证过程中会使用验证集对训练出的n个预测模型进行验证,删除验证失败的预测模型,仅保留验证通过的预测模型。此外,在实际应用中,也可以根据验证集对验证失败的预测模型进行调参操作,以使验证失败的预测模型可用于预测企业是否存在债权违约风险。通过对预测模型的验证,可以避免了训练出的预测模型存在过拟合的问题,能够保证验证通过的预测模型具有较好的泛化能力。

例如,如图2所示为五折交叉验证算法中验证集的验证效果实例图;由此可见,多次五折平均效果auc在87.4%左右,比较稳定;基于五折交叉验证是等分的,所以召回率recall与准确率precision的平均值是有意义的,因此recall81.7%与precision3.2%是比较合理的一个集内验证效果。可解释为,当使用预测模型预测出1000个债券违约企业时,其中会有32个为实际发生债券违约的企业,另外有7个实际发生债券违约行为的企业未命中。因此,

利用转化率可以通过历史数据估算出未来实际发生债券违约的企业数量;反之亦可,如果对未来实际发生债券违约的企业数量有比较好的估计,可以反推需要预测的违约企业数量。例如,当前预测模型给出未来1个财年有债券违约风险的企业是1000家,那么根据转化率,可以推测将会有39家企业实际发生债券违约。

具体的,所述方法还包括:

步骤c1:获取待预测企业的特征参数,并将所述特征参数输入到各个验证通过的预测模型中,以得到各个预测模型的预测结果;

步骤c2:根据所有预测模型的预测结果,按照预设算法,计算出所述待预测企业的最终预测结果;

步骤c3:基于所述最终预测结果判断所述待预测企业是否存在债券违约风险。

由于本实施例中的预测模型为二分类模型,所以预测模型的预测结果为0至1之间的数值;在一次交叉验证过程中,由于使用了easyensemble算法,所以会有多个预测模型,又由于使用了k折交叉验证算法,所以在每次交叉验证过程中均会得到多个预测模型;因此,用于预测企业是否存在债券违约风险的预测模型会有多个;优选的,对所有预测模型的预测结果求平均值,即得到数值在0至1之间的最终预测结果,最后将最终预测结果与预设阈值进行比较,若最终预测结果大于预设阈值,则说明所述待预测企业存在债券违约风险,反之亦然。

在本实施例中,将债券违约问题进行抽象,转化为机器学习问题,同时构建学习目标、特征变量,利用easyensemble五折交叉验证框架建立预测模型,完成参数调试,得到用于预测企业是否存在债券违约风险的诸多预测模型,从而利用诸多预测模型对待预测企业进行债券违约风险的预测操作。

实施例二

本发明实施例提供了一种训练预测模型的装置,如图3所示,该装置具体包括以下组成部分:

获取模块301,用于获取用于训练预测模型的正例样本集和负例样本集;其中,所述正例样本集包括:债券违约企业样本、所述负例样本集包括:债券未违约企业样本;

确定模块302,用于基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,以使用每组中的训练集进行模型训练,并使用对应组中的验证集对训练出的预测模型进行验证;

训练模块303,用于在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,并分别使用每个训练子集进行模型训练,以训练出n个预测模型;

验证模块304,用于在使用一组中的验证集对训练出的预测模型进行验证的过程中,使用所述验证集依次对训练出的各个预测模型进行验证,并将验证通过的预测模型用于预测企业是否存在债券违约风险。

具体的,确定模块302,用于:

将所述正例样本集均分为k个正例样本子集,并将所述负例样本集均分为k个负例样本子集;

不重复的选取一个正例样本子集与一个负例样本子集,并将选取的正例样本子集与负例样本子集合并为参考样本集,从而形成k个参考样本集;

依次将每个参考样本集作为验证集,并将剩余的k-1个参考样本集作为训练集,以确定出k组训练集和验证集。

进一步的,训练模块303,具体用于:

识别出所述训练集中的债券违约企业样本和债券未违约企业样本;

将所述训练集中的所有债券未违约企业样本均分为n个互斥训练子集,并在每个训练子集中添加所述训练集中的所有债券违约企业样本。

优选的,所述训练子集的个数其中,p为所述训练集中债券未违约企业样本的总数量,q为所述训练集中债券违约企业样本的总数量。

更进一步的,所述装置还包括:

预测模块,用于获取待预测企业的特征参数,并将所述特征参数输入到各个验证通过的预测模型中,以得到各个预测模型的预测结果;根据所有预测模型的预测结果,按照预设算法,计算出所述待预测企业的最终预测结果;基于所述最终预测结果判断所述待预测企业是否存在债券违约风险。

实施例三

本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,本实施例的计算机设备40至少包括但不限于:可通过系统总线相互通信连接的存储器401、处理器402。需要指出的是,图4仅示出了具有组件401-402的计算机设备40,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器401(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器401可以是计算机设备40的内部存储单元,例如该计算机设备40的硬盘或内存。在另一些实施例中,存储器401也可以是计算机设备40的外部存储设备,例如该计算机设备40上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器401还可以既包括计算机设备40的内部存储单元也包括其外部存储设备。在本实施例中,存储器401通常用于存储安装于计算机设备40的操作系统和各类应用软件,例如实施例二的训练预测模型的装置的程序代码等。此外,存储器401还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器402在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器402通常用于控制计算机设备40的总体操作。

具体的,在本实施例中,处理器402用于执行处理器402中存储的训练预测模型的方法的程序,所述训练预测模型的方法的程序被执行时实现如下步骤:

获取用于训练预测模型的正例样本集和负例样本集;其中,所述正例样本集包括:债券违约企业样本、所述负例样本集包括:债券未违约企业样本;

基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,以使用每组中的训练集进行模型训练,并使用对应组中的验证集对训练出的预测模型进行验证;

在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,并分别使用每个训练子集进行模型训练,以训练出n个预测模型;

在使用一组中的验证集对训练出的预测模型进行验证的过程中,使用所述验证集依次对训练出的各个预测模型进行验证,并将验证通过的预测模型用于预测企业是否存在债券违约风险。

上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。

实施例四

本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:

获取用于训练预测模型的正例样本集和负例样本集;其中,所述正例样本集包括:债券违约企业样本、所述负例样本集包括:债券未违约企业样本;

基于所述正例样本集和负例样本集,利用k折交叉验证算法确定出k组训练集和验证集,以使用每组中的训练集进行模型训练,并使用对应组中的验证集对训练出的预测模型进行验证;

在使用一组中的训练集进行模型训练的过程中,利用easyensemble算法将所述训练集划分为n个训练子集,并分别使用每个训练子集进行模型训练,以训练出n个预测模型;

在使用一组中的验证集对训练出的预测模型进行验证的过程中,使用所述验证集依次对训练出的各个预测模型进行验证,并将验证通过的预测模型用于预测企业是否存在债券违约风险。

上述方法步骤的具体实施例过程可参见第一实施例,本实施例在此不再重复赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1