用于构建机器学习模型的特征选取方法、装置以及设备
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种用于构建机器学习模型的特征选取方法、装置及设备。
背景技术
为了构建一个性能最优的机器学习模型,数据分析师和数据挖掘工程师通常会根据业务经验以及对数据的理解,暴力衍生出很多维度的特征(也称变量)。但这个过程往往会产生很多冗余细微的信息,这些信息对于我们想要构建的机器学习模型没有太多价值甚至会产生副作用。因此在构建机器学习模型的过程中,我们需要不断的去试验,经过细致的特征筛选,最后构建一个最优的机器学习模型。
对于上述特征筛选的过程,当通过人为的方式进行时,通常非常耗费人力,且会拖慢模型构建的速度,因此通常采用自动化的方式进行。传统技术中,主要有如下几种自动化的特征选取方式:过滤式特征选择、嵌入式特征选择以及包裹式特征选择。这些特征选取方式在筛选特征时,通常只考虑特征在部分数据拆分集合上的表现。
因此,需要提供一种特征的选取方式,以能够筛选出更准确的特征。
发明内容
本说明书一个或多个实施例描述了一种用于构建机器学习模型的特征选取方法、装置及设备,可以筛选出更准确的特征。
第一方面,提供了一种用于构建机器学习模型的特征选取方法,包括:
获取训练数据集;
根据预设的拆分方式,对所述训练数据集进行拆分,以获得k组训练数据子集;
对所述k组训练数据子集,并行执行如下过程k次:
从所述k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集;
根据所述当前训练数据集,计算多个待筛选的特征的m个评价指标;
根据各个评价指标,对所述多个特征进行排序,从而得到m组所述多个特征的指标排名;
基于所述当前训练数据集,训练机器学习模型,以预测一组所述多个特征的重要性排名;
将k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取所述多个特征的总排名;
根据所述总排名,从所述多个特征中选取目标特征。
第二方面,提供了一种用于构建机器学习模型的特征选取装置,包括:
获取单元,用于获取训练数据集;
拆分单元,用于根据预设的拆分方式,对所述获取单元获取的所述训练数据集进行拆分,以获得k组训练数据子集;
执行单元,用于对所述拆分单元拆分得到的所述k组训练数据子集,并行执行如下过程k次:
从所述k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集;
根据所述当前训练数据集,计算多个待筛选的特征的m个评价指标;
根据各个评价指标,对所述多个特征进行排序,从而得到m组所述多个特征的指标排名;
基于所述当前训练数据集,训练机器学习模型,以预测一组所述多个特征的重要性排名;
融合单元,用于将所述执行单元执行k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取所述多个特征的总排名;
选取单元,用于根据所述融合单元得到的所述总排名,从所述多个特征中选取目标特征。
第三方面,提供了一种用于构建机器学习模型的特征选取设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
获取训练数据集;
根据预设的拆分方式,对所述训练数据集进行拆分,以获得k组训练数据子集;
对所述k组训练数据子集,并行执行如下过程k次:
从所述k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集;
根据所述当前训练数据集,计算多个待筛选的特征的m个评价指标;
根据各个评价指标,对所述多个特征进行排序,从而得到m组所述多个特征的指标排名;
基于所述当前训练数据集,训练机器学习模型,以预测一组所述多个特征的重要性排名;
将k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取所述多个特征的总排名;
根据所述总排名,从所述多个特征中选取目标特征。
本说明书一个或多个实施例提供的用于构建机器学习模型的特征选取方法、装置及设备,获取训练数据集。根据预设的拆分方式,对训练数据集进行拆分,以获得k组训练数据子集。对该k组训练数据子集,并行执行如下过程k次:从k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集。根据当前训练数据集,计算多个待筛选的特征的m个评价指标。根据各个评价指标,对多个特征进行排序,从而得到m组多个特征的指标排名。基于当前训练数据集,训练机器学习模型,以预测一组多个特征的重要性排名。将k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取多个特征的总排名。根据总排名,从多个特征中选取目标特征。由此可以看出,本说明书在拆分得到k组训练数据子集之后,并行执行了k次当前训练数据集的选取、多个特征的指标排名以及重要性排名。由此。可以实现考虑多个特征在各组训练数据子集中的综合表现,进而可以筛选出更准确的特征。此外,本说明书提供的特征选取方法,还综合考虑了各个特征的多个评价指标,由此可以筛选出更稳定、更有效的特征。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的特征选取系统示意图;
图2为本说明书一个实施例提供的用于构建机器学习模型的特征选取方法流程图;
图3为本说明书提供的特征排名融合过程示意图;
图4为本说明书一个实施例提供的用于构建机器学习模型的特征选取装置示意图;
图5为本说明书一个实施例提供的用于构建机器学习模型的特征选取设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在介绍本说明书一个或多个实施例提供的用于构建机器学习模型的特征选取方法之前,先对该方法的发明构思进行如下描述。
在训练数据集划分方面,传统技术中,首先将总的训练数据集划分为多组。之后从多组中选取若干组训练数据集,并基于该若干组训练数据集来选取特征。由此可以看出,该特征选取方法只考虑了特征在部分训练数据集上的表现,并没有考虑特征在各个训练数据集上的综合表现。因此,通过该特征选取方法选取的特征通常不够稳定。
为了提高选取的特征的稳定性,本说明书提供的方案(简称本方案)可以借鉴k-折叠交叉验证(k-fold Cross Validation)的做法。k-折叠交叉验证的主要思想如下:将初始采样分割成k个子样本,一个单独的子样本被保留作为验证模型的数据,其他k-1个样本用来训练。交叉验证重复k次,每个子样本验证一次,平均k次的结果或者使用其它结合方式,最终得到一个单一估测。由于本方案是为了选取特征,而并非为了训练模型。由此,本方案可以只采用k-折叠交叉验证的样本划分思想以及重复k次的思想。具体地,可以将训练数据集拆分为k组,然后执行k次从k组中选取训练数据子集以及特征排名的步骤,其中,每次选取的训练数据子集为:k-1组。
举例来说,假设k为4,且拆分的4组训练数据子集为:训练子集1-4。则第1次选取的训练数据子集可以为:训练子集2-4,而训练子集1作为测试集;第2次选取的训练数据子集可以为:训练子集1以及训练子集3-4,而训练子集2作为测试集;第3次选取的训练数据子集可以为:训练子集1-2以及训练子集4,而训练子集3作为测试集;第4次选取的训练数据子集可以为:训练子集1-3,而训练子集4作为测试集。
需要说明的是,在拆分得到k组训练数据子集之后,当执行k次训练数据子集的选取步骤时,可以使得每组训练数据子集都可以被选取到。也即可以实现考虑多个特征在各组训练数据子集中的综合表现,进而可以筛选出更准确的特征。
此外,根据背景技术的内容可知,可以通过过滤式特征选择的方法来进行特征的筛选。而过滤式特征选择主要是基于训练数据集,计算每个特征的某个评价指标,之后再基于该评价指标来筛选特征。然而当仅依据一个评价指标进行特征筛选时,选取的特征通常不够稳定。因此,本方案将综合考虑每个特征的多个评价指标。
需要说明的是,上述评价指标可以包括但不限于信息价值或者信息量(Information Value,IV)、基尼系数GINI、信息增益(Info Gain,IG)、互信息(MutualInformation,MI)、Relief分数以及样本稳定指数(Sample stability index,PSI)等。需要说明的是,上述各评价指标的计算方法为传统常规技术,在此不复赘述。
最后,需要说明的是,当执行本方案一次,就可以完成一次特征的筛选。当待筛选的特征的数量比较大时,通常需要迭代执行多次(或者多轮)特征的筛选过程,也即需要执行本方案多次,以避免一次性完成特征的筛选时,会遗漏掉部分重要特征的问题。具体地,可以在每次特征筛选的过程中,都消除掉一定个数的特征。关于特征的消除可以借鉴递归式特征消除(Recursive Feature Elimination)的想法。Recursive Feature Elimination的核心思想是:第一轮:基于所有特征训练模型,以得到所有特征的重要性。下一轮:减少1个最不重要的特征,并基于剩余的特征,继续训练模型,并得到该剩余特征的重要性。之后再从剩余特征中减少1个最不重要的特征,以此类推,直至筛选得到指定数量的特征。可以理解的是,当总的特征个数为100个,而指定数量为50个时,则需要执行上述模型训练的过程50轮。
然而,当待筛选的特征的个数通常为成千上万个,而指定数量可能为几百个时,若采用上述每轮只消除1个特征的方法会极大地耗费计算资源。因此,本方案为了减少计算资源的消耗,在每轮模型训练结束后,可以消除N(如,10)个不重要的特征。以N为10为例来说,则针对前述例子,只需执行模型训练的过程5轮。需要说明的是,虽然本方案增加了每轮消除的特征的个数,但由于在每一轮的特征筛选过程中,并行执行k次训练数据子集的选取以及特征排名,因此,并不影响通过本方案选取的特征的准确性和稳定性。
上述就是本说明书提供的方案的发明构思,基于该发明构思,就可以得到本说明书提供的方案。以下对本说明书提供的方案进行进一步地详细阐述:
本说明书一个或多个实施例提供的用于构建机器学习模型的特征选取方法可以应用于如图1所示的特征选取系统10中。图1中,特征选取系统10可以包括:数据模块102、功能模块104、分析模块106以及决策模块108。
数据模块102用于根据预设的拆分方式,将训练数据集划分为k组训练数据子集。这里的预设的拆分方式可以包括但不限于时间拆分方式以及随机拆分方式等。
功能模块104用于执行如下过程k次:从k组训练数据子集中选取k-1组训练数据子集。基于选取的训练数据子集,计算多个特征的m个评价指标。根据各个评价指标,对多个特征进行排序,从而得到m组多个特征的指标排名。此外,还基于选取的训练数据子集,训练机器学习模型,以预测一组多个特征的重要性排名。
分析模块106用于对各个特征的指标排名以及重要性排名进行融合。具体地,将k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取多个特征的总排名。此外,还可以根据功能模块104计算的各个特征的评价指标,进行指标衍生以及指标融合等。其中,指标衍生是指根据某个特征的当前计算得到的评价指标,衍生出其它指标。如,根据某个特征的k组IV值,得到IV值变化率等。指标融合是指将某个特征的多个评价指标进行融合。如,将某个特征的k组IV值融合为一个IV值。这里的融合过程可以为取k组IV值中的最大值、最小值以及平均值等等。
决策模块108用于根据各个特征的总排名,从多个特征中选取目标特征。当然,在实际应用中,也可以结合其它的配置信息,来进行目标特征的选取。这里的配置信息可以包括预先配置的变量信息(如,变量元数据(metaData)以及变量所属分类等)以及筛选条件(如,IV>0.01,MAX_PSI<0.25,TOP_N=100)等。需要说明的是,这里配置的变量信息是为了便于后续精细筛选条件的配置。此外,对上述特征的选取方式可以包括但不限于如下两种:直接剔除以及迭代剔除等。直接剔除是指直接根据硬性条件一次性剔除不满足条件的特征,筛选出符合要求的目标特征。迭代剔除是指迭代执行多次或者多轮特征筛选的过程,其中在每轮特征筛选的过程中,消除掉N个不重要的特征。
图2为本说明书一个实施例提供的用于构建机器学习模型的特征选取方法流程图。所述方法的执行主体可以为图1中的特征选取系统。如图2所示,所述方法具体可以包括:
步骤202,获取训练数据集。
以构建的机器学习模型为风控模型(一种用于识别和防控盗用、欺诈以及作弊等风险的模型)为例来说,这里的训练数据集可以为多条用户的交易记录,该交易记录可以包括用户信息、交易金额以及交易时间等信息。此外,这里的训练数据集可以是经过筛选后的训练数据集。
步骤204,根据预设的拆分方式,对训练数据集进行拆分,以获得k组训练数据子集。
这里的k可以为大于1的正整数。上述预设的拆分方式可以包括但不限于时间拆分的方式以及随机拆分的方式等。以时间拆分的方式为例来说,假设训练数据集中的训练数据的记录时间为2017年1月1日-2017年1月30日,那么当k为3时,可以将2017年1月1日-2017年1月10日的训练数据拆分为一组;将2017年1月11日-2017年1月20日的训练数据拆分为另一组;将2017年1月21日-2017年1月30日的训练数据拆分为第三组。
需要说明的是,上述步骤202和步骤204可以是由数据模块102执行的。
步骤206,并行执行k次步骤a-步骤d。
步骤a,从k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集。
如前述例子,可以选取其中的2组训练数据子集作为当前训练数据集。需要说明的是,当执行k次训练数据子集的选取步骤时,可以使得每组训练数据子集都可以被选取到。也即可以实现考虑多个特征在各组训练数据子集中的综合表现,进而可以筛选出更准确的特征。
步骤b,根据当前训练数据集,计算多个待筛选的特征的m个评价指标。
多个待筛选的特征可以是由数据分析师和数据挖掘工程师根据业务经验以及对数据的理解预先设置好的。其例如可以为:用户的身份信息或者用户在过去若干天的交易次数等等。
上述评价指标可以用于表征特征的绝对重要性,与其它特征无关。其可以包括但不限于IV、GINI、IG、MI、Relief分数以及PSI等。本实施例中,可以统计m个评价指标,其中m为正整数。通过综合考虑各个特征的多个评价指标,可以保证筛选的目标特征的稳定性以及有效性。
以待筛选的特征为:特征1-3,各评价指标为:IV、GINI以及IG为例来说,上述三个特征的计算结果可以如表1所示。
表1
需要说明的是,表1中的各评价指标仅仅是基于1次选取的训练数据子集(表示为CV1)而计算得到的。可以理解的是,当基于k次选取的训练数据子集,计算各个特征的各个评价指标时,可以得到k组如表1所示的数据。
步骤c,根据各个评价指标,对多个特征进行排序,从而得到m组多个特征的指标排名。
以表1为例来说,当根据IV对各个特征进行排序时,假设CV1_IV1>CV1_IV2>CV1_IV3,则排序结果可以为:特征1,特征2,特征3。根据该排序结果,可以得到一组多个特征的指标排名:{1,2,3},其中,第1位数字代表特征1对应的指标排名,第2位数字代表特征2对应的指标排名,依次类推。同理,依据m个排名指标,可以获取到m组多个特征的指标排名。
可以理解的是,仅根据1次选取的训练数据子集就可以得到m组指标排名。那么当执行k次步骤c时,就可以得到k*m组指标排名。也即基于k次选取的训练数据子集,就可以得到k*m组指标排名。
步骤d,基于当前训练数据集,训练机器学习模型,以预测一组多个特征的重要性排名。
这里的重要性排名是依据各个特征的相对重要性而得到的。相对重要性顾名思义是相对于其它特征的重要性,即与其它特征相关。具体地,在对机器学习模型进行训练时,可以设置在模型训练好之后输出特征的重要性排序结果。根据该重要性排序结果,就可以得到一组多个特征的重要性排名。举例来说,假设有3个特征:特征1-3,且该3个特征的重要性排序结果为:特征2,特征3,特征1。根据该重要性排序结果,可以得到一组特征1-3的重要性排名:{3,1,2}。
可以理解的是,重复执行k次步骤d之后,就可以得到k组重要性排名。
需要说明的是,在实际应用中,上述步骤b-c与步骤d的执行顺序可以互换,也可以并行执行,本说明书对此不作限定。此外,上述步骤a-d可以是由功能模块104执行的。
步骤208,将k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取多个特征的总排名。
在一种实现方式中,可以直接对k*m组指标排名与k组重要性排名进行融合,以获取多个特征的总排名。
在另一种实现方式中,可以先对k*m组指标排名进行融合,以获取多个特征的总指标排名。并对k组重要性排名进行融合,以获取多个特征的总重要性排名。之后,再将总指标排名与总重要性排名进行融合,以获取多个特征的总排名。
上述总指标排名的具体获取过程可以为:从k*m组指标排名中抽取依据同一评价指标所获得的k组指标排名。根据第一排序融合算法,分别对各个特征在k组指标排名中对应的排名进行融合,以获取各个特征与该评价指标对应的指标综合排名。重复执行上述抽取以及融合处理的步骤,直至获取到各个特征与m个评价指标对应的m个指标综合排名。根据第二排序融合算法,分别将所述各个特征的m个指标综合排名进行融合,以获取各个特征的总指标排名。
当然,在实际应用中,也可以直接根据一种排序融合算法,将k*m组指标排名直接进行融合,本说明书对此不作限定。
上述第一排序融合算法或者第二排序融合算法可以包括但不限于均值算法、最大值算法、最小值算法、加权平均值算法以及鲁棒性聚合(Robust Rank Aggregation,RRA)算法等等。可以理解是,上述第一排序融合算法与第二排序融合算法可以相同也可以不同。在本说明书中,以两者相同且均为均值算法为例。
以下对各个指标排名以及总指标排名的获取过程进行举例说明。
假设有3个特征:特征1-3,3个评价指标:IV、GINI以及IG。此外,还假设k=4,也即每个特征有4个IV值,4个GINI值以及4个IG值。那么各个特征与3个评价指标对应的3个指标综合排名可以如表2-4所示。
表2
特征 |
CV1_IV |
CV2_IV |
CV3_IV |
CV4_IV |
IV综合排名 |
特征1 |
1 |
3 |
2 |
1 |
(1+3+2+1)/4=1.75 |
特征2 |
2 |
2 |
3 |
2 |
(2+2+3+2)/4=2.25 |
特征3 |
3 |
1 |
1 |
3 |
(3+1+1+3)/4=2 |
表2中,以第2列为例来说,第2列中的各行数字用于表示基于CV1所获取的IV值,对各个特征排序之后,所获得的各个特征的排名。也即与IV值对应的一组各个特征的指标排名。
表3
特征 |
CV1_GINI |
CV2_GINI |
CV3_GINI |
CV4_GINI |
GINI综合排名 |
特征1 |
2 |
3 |
1 |
1 |
(2+3+1+1)/4=1.75 |
特征2 |
3 |
2 |
2 |
2 |
(3+2+2+2)/4=2.25 |
特征3 |
1 |
1 |
3 |
3 |
(3+1+1+3)/4=2 |
表3中,以第2列为例来说,第2列中的各行数字用于表示基于CV1所获取的GINI值,对各个特征排序之后,所获得的各个特征的排名。也即与GINI值对应的一组各个特征的指标排名。
表4
表4中,以第2列为例来说,第2列中的各行数字用于表示基于CV1所获取的IG值,对各个特征排序之后,所获得的各个特征的排名。也即与IG值对应的一组各个特征的指标排名。
在获取到如上3个评价指标的综合排名之后,就可以得到各个特征的总指标排名,如表5所示。
表5
可以理解的是,表5中的第2-4列的数字分别取自表2-4的计算结果。
类似于上述指标排名或者总指标排名的获取过程,还可以获取到各个特征的重要性排名。具体地,可以根据第三排序融合算法,分别对各个特征在k组重要性排名中对应的排名进行融合,以获取各个特征的总重要性排名。这里的第三排序融合算法的定义可以同上述第一排序融合算法或者第二排序融合算法,在此不复赘述。
以上述例子为例来说,假设第三排序融合算法为均值算法,那么获取到的重要性排名可以如表6所示。
表6
表6中,以第2列为例来说,第2列中的各行数字用于表示基于CV1对一种机器学习模型进行训练后,由该机器学习模型输出的各个特征的重要性排名。也即一组各个特征的重要性排名。
在获取到各个特征的总指标排名以及总重要性排名之后,就可以得到各个特征的总排名。具体地,可以根据第四排序融合算法,将总指标排名与总重要性排名进行融合,以获取多个特征的总排名。这里的第四排序融合算法的定义可以同上述第一排序融合算法或者第二排序融合算法,在此不复赘述。
以上述例子为例来说,假设第四排序融合算法为均值算法,那么获取到的总排名可以如表7所示。
表7
特征 |
总指标排名 |
总重要性排名 |
总排名 |
特征1 |
1.83 |
2 |
(1.83+2)/2=1.915 |
特征2 |
2.25 |
2.25 |
(2.25+2.25)/2=2.25 |
特征3 |
1.92 |
1.75 |
(1.92+1.75)/2=1.835 |
可以理解的是,表7中的第2-3列的数字分别取自表5-6的计算结果。
需要说明的是,上述步骤208可以是由分析模块106执行的。
步骤210,根据总排名,从多个特征中选取目标特征。
以表7中的总排名结果为例来说,假设要选取两个特征,那么就可以选取特征1和特征2,从而特征1和特征2即为选取的目标特征。当然,这里仅仅是依照排名来进行特征筛选。在实际应用中,可以是由决策模块108结合预先配置的变量信息或者筛选条件进行筛选。
可以理解的是,当决策模块108采用迭代剔除的特征选取方式时,则可以重复执行上述步骤202-步骤210,直至筛选得到指定数量的目标特征。其中在每轮特征筛选的过程中,消除掉N个不重要的特征。
上述另一种实现方式的具体融合过程可参照图3所示。图3中,k=4。在图3的左上方示出了各个特征的与相同评价指标(如,IV、GINI或者IG等)对应的4组指标排名的融合过程,最后得到的指标综合排名包括IV综合排名、GINI综合排名以及IG综合排名等等。右上方示出了各个特征的4组重要性排名的融合过程,最后得到各个特征的总重要性排名。最下方示出了首先对各个特征的各指标排名进行融合,得到总指标排名。之后再将总指标排名与总重要性排名进行融合,得到各个特征的总排名。
通过本说明书实施例选取的目标特征可以用于构建机器学习模型,如,风控模型(一种用于识别和防控盗用、欺诈以及作弊等风险的模型)等。
综上,本说明书实施例提供的用于构建机器学习模型的特征选取方法,可以实现考虑多个特征在各组训练数据子集中的综合表现,进而可以筛选出更准确的特征。此外,本说明书提供的特征选取方法,还综合考虑了各个特征的绝对重要性(如,各个评价指标)以及相对重要性,由此可以筛选出更稳定、更有效的特征。
与上述用于构建机器学习模型的特征选取方法对应地,本说明书一个实施例还提供的一种用于构建机器学习模型的特征选取装置,如图4所示,该装置可以包括:
获取单元402,用于获取训练数据集。
拆分单元404,用于根据预设的拆分方式,对获取单元402获取的训练数据集进行拆分,以获得k组训练数据子集。
这里的预设的拆分方式包括以下任一种:时间拆分方式以及随机拆分方式。
执行单元406,用于对拆分单元404拆分得到的k组训练数据子集,并行执行如下过程k次:
从k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集。
根据当前训练数据集,计算多个待筛选的特征的m个评价指标。
根据各个评价指标,对多个特征进行排序,从而得到m组多个特征的指标排名。
基于当前训练数据集,训练机器学习模型,以预测一组多个特征的重要性排名。
上述评价指标可以包括:信息价值IV、基尼系数GINI、信息增益IG、互信息MI、Relief分数以及PSI中的若干个。
融合单元408,用于将执行单元406执行k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取多个特征的总排名。
选取单元410,用于根据融合单元408得到的总排名,从多个特征中选取目标特征。
可选地,融合单元408具体可以用于:
对k*m组指标排名进行融合,以获取多个特征的总指标排名。
对k组重要性排名进行融合,以获取多个特征的总重要性排名。
将总指标排名与总重要性排名进行融合,以获取多个特征的总排名。
融合单元408还具体可以用于:
从k*m组指标排名中抽取依据同一评价指标所获得的k组指标排名。
根据第一排序融合算法,分别对各个特征在k组指标排名中对应的排名进行融合,以获取各个特征与评价指标对应的指标综合排名。
重复执行上述抽取以及融合处理的步骤,直至获取到各个特征与m个评价指标对应的m个指标综合排名。
根据第二排序融合算法,分别将各个特征的m个指标综合排名进行融合,以获取各个特征的总指标排名。
这里的第一排序融合算法或者第二融合排序算法可以包括以下任一种:均值算法、最大值算法、最小值算法、加权平均值算法以及鲁棒性聚合RRA算法。
融合单元408还具体可以用于:
根据第三排序融合算法,分别对各个特征在k组重要性排名中对应的排名进行融合,以获取各个特征的总重要性排名。
融合单元408还具体可以用于:
根据第四排序融合算法,将总指标排名与总重要性排名进行融合,以获取多个特征的总排名。需要说明的是,上述获取单元402以及拆分单元404的功能可以由数据模块102来实现。执行单元406的功能可以由功能模块104来实现。融合单元408的功能可以由分析模块106来实现。选取单元410的功能可以由决策模块108来实现。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的用于构建机器学习模型的特征选取装置,可以筛选出更稳定、更有效的特征。
与上述用于构建机器学习模型的特征选取方法对应地,本说明书实施例还提供了一种用于构建机器学习模型的特征选取设备,如图5所示,该设备可以包括:存储器502、一个或多个处理器504以及一个或多个程序。其中,该一个或多个程序存储在存储器502中,并且被配置成由一个或多个处理器504执行,该程序被处理器504执行时实现以下步骤:
获取训练数据集。
根据预设的拆分方式,对训练数据集进行拆分,以获得k组训练数据子集。
对k组训练数据子集,并行执行如下过程k次:
从k组训练数据子集中选取k-1组训练数据子集,以作为当前训练数据集。
根据当前训练数据集,计算多个待筛选的特征的m个评价指标。
根据各个评价指标,对多个特征进行排序,从而得到m组多个特征的指标排名。
基于当前训练数据集,训练机器学习模型,以预测一组多个特征的重要性排名。
将k次得到的k*m组指标排名以及k组重要性排名进行融合,以获取多个特征的总排名。
根据总排名,从多个特征中选取目标特征。
本说明书一个实施例提供的用于构建机器学习模型的特征选取设备,可以筛选出更稳定、更有效的特征。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。