训练模型时的多轮循环特征选择方法和装置与流程

文档序号:18827195发布日期:2019-10-09 02:04阅读:355来源:国知局
训练模型时的多轮循环特征选择方法和装置与流程

本发明涉及特征选择技术领域,尤其涉及一种训练模型时的多轮循环特征选择方法和装置。



背景技术:

目前模型训练中,尤其是传统统计学习,例如逻辑回归,使用最大似然估计求解相关特征参数,在给定样本的前提下,特征参数是唯一值。即可认为,在给定前提条件下,目前的求解方式仅仅可以得到一个局部最优解,此结果极容易受到给定样本划分的影响。由于样本划分时,具有随机性,所以此种方式得到的结果具有很高的随机不确定性,无法保证模型训练结果具有高精度和可泛化性,很难在实际生产上使用。

因此,目前模型训练中特征选择效果具有样本强依赖性和高随机性的问题。



技术实现要素:

本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的训练模型时的多轮循环特征选择方法和装置。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明的一个方面提供了一种训练模型时的多轮循环特征选择方法,包括:s1,获取建模样本,并将建模样本划分为训练样本和测试样本;s2,对训练样本进行等频划分,得到l份数据,其中,l为预设数;s3,分别对全部备选特征进行初步筛选,初步筛选包括:iv值筛选、随机森林拟合后importance筛选、pca&共线性剔除和elasticnet挑选,并对筛选后的特征进行特征处理,得到备选特征集;s4,随机抽取l份数据中的m份数据作为训练数据,进行逐步回归拟合,得到筛选后的特征集,对筛选后的特征集使用交叉验证方法,在l份数据上再次进行样本划分,使用其中的t份数据进行训练得到备选模型,并利用l份数据中的剩余份数据对备选模型进行测试,得到初步评估结果,并重复执行k次,得到该筛选后的特征集的综合评估结果,其中m小于l为预设数,t小于l为预设数,k为预设数;s5,重复执行n次步骤s2-s4,得到多个备选模型和多个对应的评估结果,其中,n为预设数;s6,确定最优评估结果,选取最终特征集;s7,利用最终特征集训练最优模型,输出最优模型。

其中,对训练样本进行等频划分,得到l份数据包括:根据训练样本的训练数据本身分布,对应目标特征和特征表现,对训练样本进行等频划分,得到l份数据。

其中,初步评估结果包括:auc和ks,筛选后的特征集的评估结果包括:auc和ks的均值和标准差。

其中,确定最优评估结果,选取最终特征集包括:利用auc均值最大、auc标准差最小、ks均值最大和ks均值标准差最小指标选出最终特征集。

其中,方法还包括:s8,利用测试样本对最优模型进行测试。

本发明另一方面提供了一种训练模型时的多轮循环特征选择装置,包括:获取模块,用于获取建模样本,并将建模样本划分为训练样本和测试样本;划分模块,用于对训练样本进行等频划分,得到l份数据,其中,l为预设数;初筛模块,用于分别对全部备选特征进行初步筛选,初步筛选包括:iv值筛选、随机森林拟合后importance筛选、pca&共线性剔除和elasticnet挑选,并对筛选后的特征进行特征处理,得到备选特征集;评估模块,用于随机抽取l份数据中的m份数据作为训练数据,进行逐步回归拟合,得到筛选后的特征集,对筛选后的特征集使用交叉验证方法,在l份数据上再次进行样本划分,使用其中的t份数据进行训练得到备选模型,并利用l份数据中的剩余份数据对备选模型进行测试,得到初步评估结果,并重复执行k次,得到该筛选后的特征集的综合评估结果,其中m小于l为预设数,t小于l为预设数,k为预设数;执行模块,用于通知划分模块、初筛模块、评估模块重复执行n次操作,得到多个备选模型和多个对应的评估结果,其中,n为预设数;选取模块,用于确定最优评估结果,选取最终特征集;输出模块,用于利用最终特征集训练最优模型,输出最优模型。

其中,划分模块通过如下方式对训练样本进行等频划分,得到l份数据:划分模块,具体用于根据训练样本的训练数据本身分布,对应目标特征和特征表现,对训练样本进行等频划分,得到l份数据。

其中,初步评估结果包括:auc和ks,筛选后的特征集的评估结果包括:auc和ks的均值和标准差。

其中,选取模块通过如下方式确定最优评估结果,选取最终特征集:选取模块,具体用于利用auc均值最大、auc标准差最小、ks均值最大和ks均值标准差最小指标选出最终特征集。

其中,装置还包括:测试模块;测试模块,用于利用测试样本对最优模型进行测试。

由此可见,本发明实施例提供的训练模型时的多轮循环特征选择方法和装置,在模型训练中使用了循环迭代的思想,不仅多次进行建模样本的不放回重抽样,训练多次模型,而且还在建模过程中使用了多次交叉验证的方法,从而极大的减轻特定样本数据建模带来随机性和不稳定性。由此得到的最终模型经过了多次拟合,结果符合大数定律,具有良好的泛化性和可延续性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的训练模型时的多轮循环特征选择方法的流程图;

图2为本发明实施例提供的训练模型时的多轮循环特征选择方法的一种具体实例的流程图;

图3为本发明实施例提供的训练模型时的多轮循环特征选择装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明提供的训练模型时的多轮循环特征选择方法是机器学习,传统统计学习与贪心算法的创新结合,使用了多次求得局部最优解的方式进行最优拟合,主体思想为通过拟合出多个局部最优解,得到最优的局部最优解,或理论上逼近全局最优解,从而实现所需训练的模型达到最优的预测表现,提高实际生产环境中应用的精度和泛化能力。

具体地,本发明在实践中结合多种场景和数据,可以使用r语言对其进行实现,具体可以包括:数据分层,全集特征选择,子集特征选择,效果评估与最优模型输出等功能。

步骤一:数据分层:在建模的训练样本和测试样本划分后,根据训练数据本身分布,对应目标特征和其他特征的表现,对训练样本进行等频划分。

步骤二:全集特征选择:经过上述数据分层和特征预处理后对数据中所有特征进行初步筛选,使用1.iv值筛选,2.随机森林拟合后importance筛选,3.pca&共线性剔除和4.elasticnet挑选的方法,得到备选的特征子集。此步的目的是快速剔除无关或极弱特征,保证入选特征的效果,提高之后训练模型的时效性和节约计算资源。

步骤三:子集特征选择:为在步骤二的基础上,对选定的等频数据进行逐步回归拟合(stepwise),得到备选模型与对应特征变量。再使用交叉验证的方法,对此模型的预测效果进行评估,所用评估指标为auc和ks。

步骤四:重复步骤一、步骤二和步骤三多次,得到多个模型和多个对应的评估指标,即多个局部最优解。

步骤五:效果评估与最优模型输出:经过上述步骤,结合auc均值最大,auc标准差最小,ks均值最大和ks均值标准差最小等指标选出符合场景需求的最优模型与其对应特征,作为生产中可上线的最终模型。

图1示出了本发明实施例提供的训练模型时的多轮循环特征选择方法的流程图,参见图1,本发明实施例提供的训练模型时的多轮循环特征选择方法,包括:

s1,获取建模样本,并将建模样本划分为训练样本和测试样本。

具体地,将建模样本划分为训练样本和测试样本,以便利用训练样本进行建模训练,利用测试样本对模型进行测试,保证模型的准确性。

s2,对训练样本进行等频划分,得到l份数据,其中,l为预设数。

作为本发明实施例的一个可选实施方式,对训练样本进行等频划分,得到l份数据包括:根据训练样本的训练数据本身分布,对应目标特征和特征表现,对训练样本进行等频划分,得到l份数据。

具体地,本步骤用于数据分层。在建模的训练样本和测试样本划分后,根据训练数据本身分布,对应目标特征和其他特征的表现,对训练样本进行等频划分,例如可以为10次。

s3,分别对全部备选特征进行初步筛选,初步筛选包括:iv值筛选、随机森林拟合后importance筛选、pca&共线性剔除和elasticnet挑选,并对筛选后的特征进行特征处理,得到备选特征集。

具体地,本步骤用于全集特征选择。经过上述数据分层和特征预处理后对数据中所有特征进行初步筛选,使用1.iv值(informationvalue,信息价值)筛选,2.随机森林拟合后importance(特征重要性指数)筛选,3.pca(principalcomponentanalysis,主成分分析法)&共线性剔除和4.elasticnet(弹性网络)挑选的方法,可以得到备选的特征子集。此步的目的是快速剔除无关或极弱特征,保证入选特征的效果,提高之后训练模型的时效性和节约计算资源。

s4,随机抽取l份数据中的m份数据作为训练数据,进行逐步回归拟合,得到筛选后的特征集,对筛选后的特征集使用交叉验证方法,在l份数据上再次进行样本划分,使用其中的t份数据进行训练得到备选模型,并利用l份数据中的剩余份数据对备选模型进行测试,得到初步评估结果,并重复执行k次,得到该筛选后的特征集的综合评估结果,其中m小于l为预设数,t小于l为预设数,k为预设数。

具体地,在s3的基础上,对选定的等频数据进行逐步回归拟合(stepwise),得到备选模型与对应特征变量。再使用交叉验证的方法,对此模型的预测效果进行评估。作为本发明实施例的一个可选实施方式,初步评估结果包括:auc和ks,筛选后的特征集的评估结果包括:auc和ks的均值和标准差。即本发明中,对测试效果进行评估时所用评估指标为auc和ks。其中,auc:areaundercurve,roc曲线下与坐标轴围成的面积。ks:kolmogorov-smirnov,ks=max(tpr-fpr),即为tpr与fpr的差的最大值,ks值可以反映模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。

实际应用中,可以令m为8,t为9,k为10,这可以在实际应用中进行设置和选择,在本发明中并不做具体限制。

s5,重复执行n次步骤s2-s4,得到多个备选模型和多个对应的评估结果,其中,n为预设次数。

具体地,重复执行步骤s2-s4多次,得到多个模型和多个对应的评估指标,即多个局部最优解。

s6,确定最优评估结果,选取最终特征集。

具体地,本步骤用于子集特征选择。由于现有计算机的运算能力与时间成本等关系,目前世界已知的所有的算法均无法在超大量数据上,使用最优化等运筹学手段是找出全局最优解。因此,本发明提出并实现一种可行方案,即实现多次循环迭代找出多次局部最优解,并挑选出其中最优秀的局部最优解作为近似全局最优解,其入选特征为最优特征,即作为最终入选模型特征。

作为本发明实施例的一个可选实施方式,确定最优评估结果,选取最终特征集包括:利用auc均值最大、auc标准差最小、ks均值最大和ks均值标准差最小指标选出最终特征集。经过上述步骤,结合auc均值最大,auc标准差最小,ks均值最大和ks均值标准差最小等指标选出符合场景需求的最优模型与其对应特征,之后可以将最优模型作为生产中可上线的最终模型。

s7,利用最终特征集训练最优模型,输出最优模型。

作为本发明实施例的一个可选实施方式,本发明实施例提供的训练模型时的多轮循环特征选择方法,还包括:s8,利用测试样本对最优模型进行测试。通过测试样本对最优模型进行测试,可以对最优模型进行进一步测试,保证最优模型的可靠性。

由此可见,通过本发明实施例提供的训练模型时的多轮循环特征选择方法,提供了生成多个局部最优解的方法,并从其中找出效果最好的结果,作为全局最优解的近似解,最大成度的优化模型效果。通过对样本多次重抽样的方式,本质上是遵从了大数定律的原则,减轻或缓解模型对特定样本强依赖性,使得模型结果具有稳定性和强泛化能力。使用交叉验证的方法进行特征选择,使得模型效果直接影响入选特征,让模型建设的过程和结果保持一致,而此前交叉验证的方法仅用于计算出最优的超参数。在模型评估上使用了均值和标准差的两重标准,既能选取出平均意义上的最优效果的模型,也能选取出模型效果波动最小的模型,使得最终实际生产的模型可以兼顾这两种指标,得到实际效果最优的模型。

因此,在模型训练中使用了循环迭代的思想,不仅多次进行建模样本的不放回重抽样,训练多次模型,而且还在建模过程中使用了多次交叉验证的方法,从而极大的减轻特定样本数据建模带来随机性和不稳定性。由此得到的最终模型经过了多次拟合,结果符合大数定律,具有良好的泛化性和可延续性。

以下,通过图2所示的本发明实施例提供的一种具体的实现方式,对本发明实施例提供的训练模型时的多轮循环特征选择方法进行进一步说明,但本发明并不局限于此:

本发明实施例提供的训练模型时的多轮循环特征选择方法,包括:

步骤1:对训练集trainset进行变量选择,将训练集trainset随机分成10份,如set1,set2,……set10。

步骤2:将全部备选变量经过:1.iv值筛选,2.随机森林拟合后importance筛选,3.pca&共线性剔除和4.elasticnet挑选,并做变量处理后,得到备选变量集a;

步骤3:以变量集a作为备选变量集,且随机抽取n(例如n=8)份数据作为训练数据,使用stepwise回归,得到筛选后的变量集b(i);

步骤4:以其中一次循环得到变量集b(1)为例:重新使用全部训练集trainset,每次随机选取9份以变量集b(1)训练得到b1_m1,并将该模型在第10份上测试,得到测试的auc和ks;重复执行本步骤10次;

步骤5:得到变量集b(1)对应的10组“测试的auc和ks”,并计算出变量集b(1)对应的“测试上的auc和ks均值和标准差”;

步骤6:重复执行步骤1至步骤5,例如10000以上的次数等;

步骤7:对变量集b(i){i=1,2,3……100}对应的100组“测试上的auc和ks均值和方差”,按照以下标准:1、测试上的auc和ks均值最大;2、测试上的auc和ks标准差最小;3、系数符合数据趋势与业务逻辑,选取最终使用的变量集c;

步骤8:使用变量集c,在训练集trainset上训练得到模型m;

步骤9:利用测试集testset对模型m进行测试。

由此可见,本发明实施例提供的训练模型时的多轮循环特征选择方法,具有如下优点:

1、对建模的方式方法进行创新,从传统的一次拟合建模过程,创新为多次循环迭代的方式多次拟合建模,得到多个局部最优解,从中选取最优的局部最优解作为最终结果。优化了传统建模一次拟合带来的随机性和模型不稳定性。

2、对建模数据分层方法进行创新,从传统的一次建模数据分层,创新为多次不放回式重复抽样的分层,可得到多次不同数据分层的样本,为模型多次拟合得到多个局部最优解提高前提条件。

3、对建模特征选择方法进行创新,从传统的串行自上而下的特征选择,创新为分步多次交叉验证的特征选择方法。首先通过数据的多次分层进行一次特征初步选择,其次创新的通过应用多次交叉验证的方法得到多个局部最优解的特征子集,最后对比各个子集的效果,达到挑选出最优子特征集的目的。

图3示出了本发明实施例提供的训练模型时的多轮循环特征选择装置的结构示意图,该训练模型时的多轮循环特征选择装置应用于上述训练模型时的多轮循环特征选择方法,以下仅对训练模型时的多轮循环特征选择装置的结构进行简要说明,其他未尽事宜,请参照上述训练模型时的多轮循环特征选择方法的相关说明,在此不再赘述。参见图3,本发明实施例提供的训练模型时的多轮循环特征选择装置,包括:

获取模块301,用于获取建模样本,并将建模样本划分为训练样本和测试样本;

划分模块302,用于对训练样本进行等频划分,得到l份数据,其中,l为预设数;

初筛模块303,用于分别对全部备选特征进行初步筛选,初步筛选包括:iv值筛选、随机森林拟合后importance筛选、pca&共线性剔除和elasticnet挑选,并对筛选后的特征进行特征处理,得到备选特征集;

评估模块304,用于随机抽取l份数据中的m份数据作为训练数据,进行逐步回归拟合,得到筛选后的特征集,对筛选后的特征集使用交叉验证方法,在l份数据上再次进行样本划分,使用其中的t份数据进行训练得到备选模型,并利用l份数据中的剩余份数据对备选模型进行测试,得到初步评估结果,并重复执行k次,得到该筛选后的特征集的综合评估结果,其中m小于l为预设数,t小于l为预设数,k为预设数;

执行模块305,用于通知划分模块、初筛模块、评估模块重复执行n次操作,得到多个备选模型和多个对应的评估结果,其中,n为预设数;

选取模块306,用于确定最优评估结果,选取最终特征集;

输出模块307,用于利用最终特征集训练最优模型,输出最优模型。

作为本发明实施例的一个可选实施方式,划分模块302通过如下方式对训练样本进行等频划分,得到l份数据:划分模块,具体用于根据训练样本的训练数据本身分布,对应目标特征和特征表现,对训练样本进行等频划分,得到l份数据。

作为本发明实施例的一个可选实施方式,初步评估结果包括:auc和ks,筛选后的变量集的评估结果包括:auc和ks的均值和标准差。

作为本发明实施例的一个可选实施方式,选取模块306通过如下方式确定最优评估结果,选取最终变量集:选取模块306,具体用于利用auc均值最大、auc标准差最小、ks均值最大和ks均值标准差最小指标选出最终变量集。

作为本发明实施例的一个可选实施方式,本发明实施例提供的,训练模型时的多轮循环特征选择装置还包括:测试模块308;测试模块308,用于利用测试样本对最优模型进行测试。

由此可见,通过本发明实施例提供的训练模型时的多轮循环特征选择装置,提供了生成多个局部最优解的方法,并从其中找出效果最好的结果,作为全局最优解的近似解,最大成度的优化模型效果。通过对样本多次重抽样的方式,本质上是遵从了大数定律的原则,减轻或缓解模型对特定样本强依赖性,使得模型结果具有稳定性和强泛化能力。使用交叉验证的方法进行特征选择,使得模型效果直接影响入选特征,让模型建设的过程和结果保持一致,而此前交叉验证的方法仅用于计算出最优的超参数。在模型评估上使用了均值和标准差的两重标准,既能选取出平均意义上的最优效果的模型,也能选取出模型效果波动最小的模型,使得最终实际生产的模型可以兼顾这两种指标,得到实际效果最优的模型。

因此,在模型训练中使用了循环迭代的思想,不仅多次进行建模样本的不放回重抽样,训练多次模型,而且还在建模过程中使用了多次交叉验证的方法,从而极大的减轻特定样本数据建模带来随机性和不稳定性。由此得到的最终模型经过了多次拟合,结果符合大数定律,具有良好的泛化性和可延续性。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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