高阶特征的自动生成方法、系统、设备和介质与流程

文档序号:21644186发布日期:2020-07-29 02:57阅读:236来源:国知局
高阶特征的自动生成方法、系统、设备和介质与流程

本发明涉及人工智能与机器学习领域,尤其涉及一种高阶特征的自动生成方法、系统、设备和介质。



背景技术:

近些年来,越来越多的案例表明,有效的特征对于一个机器学习任务的各项指标能带来巨大提升。机器学习中的特征是指事物某些突出性质的表现,是区分事物的关键。许多专家可以利用自己的领域知识,结合具体的业务场景,设计出有用的特征,推动业务发展。另一方面,模型的可解释性在一些场景下非常重要。比如旅游产品的搜索排序,良好的可解释性对于旅游产品的供应商理解他们产品的排序结果十分重要。

通常情况下,一个有效特征的设计往往要经历猜想、统计分析、模型验证等多个过程。首先需要深入结合业务背景进行分析,然后收集数据提取特征,并进行统计检验,再将特征加入模型当中,观察效果。一个有效特征的产生往往需要经过多轮验证,这个过程耗费许多人力、物力,且难以做到特征的准确性和高覆盖性。另一方面,深度学习在近年来的搜索推荐任务中表现优异,在多项关键指标上,它的表现已经超过了其他形式的机器学习。深度学习直接操作初始数据并自动学习初始数据集相关特征更高级别的表示。然而通过深度学习技术产生新特征对人类不透明,这些高阶特征虽然能带来较好的效果,但不具有很好的解释性。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中通过深度学习技术产生新特征对人类不透明,且产生的这些新特征不具有很好的解释性的缺陷,提供一种高阶特征的自动生成方法、系统、设备和介质。

本发明是通过下述技术方案来解决上述技术问题:

本发明提供了一种高阶特征的自动生成方法,所述高阶特征的自动生成方法包括:

s1、获取输入特征集,所述输入特征集中包含有若干个输入特征;

s2、通过对当前的输入特征集中的输入特征进行算子操作生成高阶特征;

s3、将生成的每一个高阶特征分别加入至输入特征集中,以组成若干组候选特征集,利用选定的机器模型对所述若干组候选特征集进行评估;

s4、将评估结果最优的若干个候选特征集中的高阶特征加入至输入特征集中,以得到更新的输入特征集;

s5、利用所述机器模型对步骤s2中的输入特征集进行评估,得到第一评估结果,并判断所述机器模型对所述若干组候选特征集的评估结果是否均劣于所述第一评估结果,若是,则输出更新的输入特征集中的高阶特征,若否,则返回步骤s2。

较佳地,步骤s1中的所述输入特征集中的输入特征均具有对应的名称和含义;

步骤s5中在输出更新的输入特征集中的高阶特征时,还输出所述高阶特征的名称和含义。

较佳地,所述获取输入特征集的步骤包括:

获取原始特征;

对所述原始特征进行分析,删除值缺失率大于第一阈值的特征及相关性高于第二阈值的特征,以得到第一原始特征;

基于所述第一原始特征,筛选出不同类别的特征,以得到输入特征集。

较佳地,所述通过对当前的输入特征集中的输入特征进行算子操作生成高阶特征,以得到第一特征的步骤包括:

对所述当前输入特征集中的输入特征进行一元算子操作,获取基础特征;

对所述基础特征进行二元算子和/或多元算子操作,生成所述高阶特征。

较佳地,当对所述基础特征进行多元算子操作时,所述多元算子操作步骤包括:

根据权重概率从多元算子集中选取一个所述多元算子,所述多元算子集包含groupthenmin、groupthenmax、groupthenavg算子;

随机从[2,l]区间内选取m个所述输入特征;所述[2,l]中的l为采用多元算子时,选择所述输入特征的最大数量;

对所述m个所述输入特征进行多元算子操作;

重复执行上述步骤多轮次,产生多个所述高阶特征,并依据所述高阶特征的表现,对所述多元算子的权重,依据公式进行更新,并归一化;所述公式如下:

公式中p(δk)表示所述多元算子δk的权重,ck表示δk在当前轮次的使用次数,valik为δk在第i次使用时在有关机器学习模型上的评估指标。

本发明还提供一种高阶特征的自动生成系统,所述高阶特征的自动生成系统包括:

获取模块,用于获取输入特征集,所述输入特征集中包含有若干个输入特征;

操作模块,用于通过对当前的输入特征集中的输入特征进行算子操作生成高阶特征;

评估模块,用于将生成的每一个高阶特征分别加入至输入特征集中,以组成若干组候选特征集,利用选定的机器模型对所述若干组候选特征集进行评估;

更新模块,用于将评估结果最优的若干个候选特征集中的高阶特征加入至输入特征集中,以得到更新的输入特征集;

判断模块,用于利用所述机器模型对所述操作模块当前操作的输入特征集进行评估,得到第一评估结果,并判断所述机器模型对所述若干组候选特征集的评估结果是否均劣于所述第一评估结果,若是,则输出更新的输入特征集中的高阶特征,若否,则重新调用操作模块。

较佳地,

所述获取模块获取的所述输入特征集中的输入特征均具有对应的名称和含义;

所述判断模块,还用于在输出更新的输入特征集中的高阶特征时,还输出所述高阶特征的名称和含义。

较佳地,所述获取模块包括:

获取单元,用于获取原始特征;

删除单元,用于对所述原始特征进行分析,删除值缺失率大于第一阈值的特征及相关性高于第二阈值的特征,以得到第一原始特征;

筛选单元,用于基于所述第一原始特征,筛选出不同类别的特征,以得到输入特征集。

较佳地,所述操作模块包括:

第一操作单元,用于对所述当前输入特征集中的输入特征进行一元算子操作,获取基础特征;

第二操作单元,对所述基础特征进行二元算子和/或多元算子操作,生成所述高阶特征。

较佳地,当对所述基础特征进行多元算子操作时,所述第二操作单元包括:

第一选取子单元,用于根据权重概率从多元算子集中选取一个所述多元算子,所述多元算子集包含groupthenmin、groupthenmax、groupthenavg算子;

第二选取子单元,用于随机从[2,l]区间内选取m个所述输入特征;所述所述[2,l]中的l为采用多元算子时,选择所述输入特征的最大数量;

第三操作子单元,用于对所述m个所述输入特征进行多元算子操作;

更新子单元,用于重复调用上述子单元,产生多个所述高阶特征,并依据所述高阶特征的表现,对所述多元算子的权重,依据公式进行更新,并归一化;所述公式如下:

公式中p(δk)表示所述多元算子δk的权重,ck表示δk在当前轮次的使用次数,valik为δk在第i次使用时在有关机器学习模型上的评估指标。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的高阶特征的自动生成方法。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的高阶特征的自动生成方法的步骤。

本发明的积极进步效果在于:本发明提供了一种高阶特征的自动生成方法、系统、设备和介质,通过对原始特征进行预处理,选定合适的原始特征集;根据多种可解释的算子产生候选特征集;对候选特征集进行快速有效评估;输出生成的高阶特征以及特征对应的具体含义。对比现有技术中基于深度学习产生黑箱特征,本发明不仅能自动产生出有效的高阶特征,而且能对产生的高阶特征命名和解释含义。

附图说明

图1为本发明实施例1的高阶特征的自动生成方法的流程图。

图2为本发明实施例1的步骤s101的流程图。

图3为本发明实施例1的步骤s102的流程图。

图4为本发明实施例1的步骤s1022的流程图。

图5为本发明实施例2的高阶特征的自动生成系统的模块示意图。

图6为本发明实施例2的获取模块的模块示意图。

图7为本发明实施例2的操作模块的模块示意图。

图8为本发明实施例2中对所述基础特征进行多元算子操作时,操作单元的模块示意图。

图9为本发明实施例3的电子设备的结构示意图

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

如图1所示,本实施例公开了一种高阶特征的自动生成方法,包括以下步骤:

步骤s101、获取输入特征集,所述输入特征集中包含有若干个输入特征;所述输入特征均具有对应的名称和含义;

步骤s102、通过对当前的输入特征集中的输入特征进行算子操作生成高阶特征;

本实施例中的算子,包括算子名称,算子含义与算子执行方式,根据算子产生交叉特征候选。算子主要包括一元算子、二元算子和多元算子。

步骤s103、将生成的每一个高阶特征分别加入至输入特征集中,以组成若干组候选特征集,利用选定的机器模型对所述若干组候选特征集进行评估;

步骤s104、将评估结果最优的若干个候选特征集中的高阶特征加入至输入特征集中,以得到更新的输入特征集;

步骤s105、利用所述机器模型对步骤s2中的输入特征集进行评估,得到第一评估结果,并判断所述机器模型对所述若干组候选特征集的评估结果是否均劣于所述第一评估结果,若是,执行步骤s106,若否,则返回步骤s102;

步骤s106、输出更新的输入特征集中的高阶特征和高阶特征的名称和含义。

本实施例中,利用模型来评估候选特征,由于要对每个候选特征进行单独评估,一个简单快速的模型将能极大提升时间效率,逻辑斯特回归模型是一个理想的选择,可根据业务场景进行更具体的选择。同时,数据集过大也将影响评估的时间。当数据集过大时,如果抽样的数据能够较好的衡量整体数据的分布,对数据抽样再进行高阶特征的产生与评估也将大大减少整体的运行时间。

本实施例中评估指标是指准确率、ndcg(normalizeddiscountedcumulativegain,归一化折损累计增益)、auc(areaunderthecurveofroc,一种模型评估指标)等,具体到不同的任务场景可以有不同的选择。例如,在一个搜索下,为了把跟用户搜索词相关性高的产品尽可能排在一个列表页的前面,选定评估指标应该和排序相关,如指标auc关注全局的排序,衡量正样本排在负样本前的概率。在这个推荐场景下,为了产生可解释的高阶特征,在此过程中,选定指标为auc,算法模型可以选定为lr模型。

本实施例中,新产生的高阶特征名称具有如下的形式:[feature][operator],[feature]为原特征,即父特征,[operator]为对父特征操作的算子。对输出的特征按照父特征名称和交叉算子,结合下表解释其含义。

以两个具体的例子进一步说明:

例1:比如说新产生特征名称为[age][disc5]。age是父特征,表示用户的年龄。查表,disc5是一元算子,为特征离散化的含义,则该新特征表示为对年龄离散化5个等级。

例2:新产生特征名称为[[age][disc5],gender,level][groupthenavg]。其中,[age][disc5],gender,level三个是父特征,[age][disc5]是(1)中一元算子作用后的新特征,在此次特征产生的过程中也充当了父特征,gender表示用户性别,level表示用户消费水平等级。查表,groupthenavg是多元算子,特征含义为特征分组后取平均,则该新特征表示为按[age][disc5],gender这两个特征分组,然后组内取level的平均,该特征刻画了用户在不同年龄、不同性别的平均消费水平。

利用模型来评估候选特征,由于要对每个候选特征进行单独评估,一个简单快速的模型将能极大提升时间效率,逻辑斯特回归模型是一个理想的选择,可根据业务场景进行更具体的选择。同时,数据集过大也将影响评估的时间。当数据集过大时,如果抽样的数据能够较好的衡量整体数据的分布,对数据抽样再进行高阶特征的产生与评估也将大大减少整体的运行时间。

如图2所示,本实施例中,步骤101包括以下步骤:

步骤s1011、获取原始特征;

步骤s1012、对所述原始特征进行分析,删除值缺失率大于第一阈值的特征及相关性高于第二阈值的特征,以得到第一原始特征;

步骤s1013、基于所述第一原始特征,筛选出不同类别的特征,以得到输入特征集。

本实施例中对特征的分析主要是根据已有经验设定一些规则。一般值缺失率大于0.5的特征被认为是不可用,需要删除。方差太小的特征,去掉,这样的特征在不同的样本间没有差异,没有区分度,通过设立一个阈值,过滤掉方差太小的特征。例如,一个收集来的特征a通过计算方差是0.5,而根据以往经验,方差大于2的特征才可用,设置阈值为2,则特征a被过滤掉,达到了筛选特征的目的。

本实施例中特征筛选主要考虑丰富性和有效性两个方面。丰富性是为了后面操作中更容易产生有用的高阶特征,而有效性是去掉一些相似度高的特征,减少产生的候选特征的数量。筛选主要依靠规则和算法两方面,丰富性依靠规则,有效性依靠算法。

规则:输入的特征是整个高阶特征自动生成的第一步,这一步的特征筛选靠人为的规则。搜索推荐场景下,特征往往包含用户特征、产品特征、上下文特征(如时间特征)、交叉特征(前面三种特征的一些)四大类,在输入特征时这四类特征应该尽可能的覆盖,才容易产生丰富有效的高阶特征交叉。

算法:计算各个特征之间的皮尔逊相关系数。当两个变量皮尔逊相关系数大于0.7时,被认为是高度相关。此时,随机选择一个特征。经过一轮迭代,会产生一个新的特征集合,重复此过程,直至任意两个特征间的皮尔逊相关系数都小于0.7为止,通过此步骤会筛除掉一部分高度相关的特征。

如图3所示,本实施例中,步骤102包括以下步骤:

步骤s1021、对所述当前输入特征集中的输入特征进行一元算子操作,获取基础特征;

本实施例中,一元算子:对于一个特征进行作用产生新的特征。一元算子的作用是对一些特征进行数值清洗与数值转换,主要目的是将非结构化数据转成结构化数据,便于后续进行特征交叉。一元算子有离散化、归一化和其他数值转换的操作。离散化:如对数值特征进行离散化可以将连续特征和日期特征转换为离散的特征。在许多的分类算法中离散化对于提升模型性能有很重要的作用。归一化:将数值特征统一到一个范围内,很多机器学习算法如lr(logisticregression,逻辑回归)、dnn(deepneuralnetworks,深度神经网络)等对特征的数值大小比较敏感。数值转换:对数值特征取平方、开方、log等操作,使特征数据分布变得平滑。

步骤s1022、对所述基础特征进行二元算子和/或多元算子操作,生成所述高阶特征。

本实施例中,二元算子:对于两个特征进行作用产生新的特征。如对两个特征进行加减乘除等四则运算,对两个特征进行笛卡儿积操作。通过对两个特征进行运算,可以产生丰富的特征。如用户的消费水平与旅游产品的价格两个特征,进行二元算子除法操作,可以生成衡量出用户对产品的价格的偏好特征。通过二元算子可能会产生出多个有用的特征。

多元算子:使用两个或者多个特征产生一个特征。如先对某两个特征group之后,再按分组对第三个特征取组内的最大值、最小值或者平均值。比如有三个特征,性别、年龄和消费等级,如可按性别、年龄分组,统计每组内消费等级的平均值。通过多元算子的作用,可产生一个刻画不同性别不同年龄消费水平的特征。

本实施例中,算子作用是指对选出的特征使用算子以产生新的特征。例如,现有多元算子groupthenavg和选中的特征性别、年龄和消费等级,性别特征有男、女、未知这三类,年龄等级有7类,分别为[1,2,3,4,5]这5类,消费等级有[1,2,3,4,5]五类,多元算子groupthenavg会按照前两个特征进行分组,比如有[男,1],[男,2],[男,3],...[女,1],[女,2],[女,3],...[未知,1],[未知,2],[未知,3],...等15个组,对每组再取消费等级的平均值。这样就会产生一个新特征,[gender,age,level][groupthenavg]。假设其中一个具体的值为[女,2,5],则该值表示性别为女年龄等级为2的平均消费等级是5,新产生的特征刻画了不同性别不同年龄的平均消费水平。

如图4所示,本实施例中,当对所述基础特征进行多元算子操作时,步骤1022包括以下步骤:

步骤s10221、根据权重概率从多元算子集中选取一个所述多元算子,所述多元算子集包含groupthenmin、groupthenmax、groupthenavg算子;

步骤s10222、随机从[2,l]区间内选取m个所述输入特征;所述[2,l]中的l为采用多元算子时,选择所述输入特征的最大数量;

步骤s10223、对所述m个所述输入特征进行多元算子操作;

步骤s10224、重复执行上述步骤多轮次,产生多个所述高阶特征,并依据所述高阶特征的表现,对所述多元算子的权重,依据公式进行更新,并归一化;所述公式如下:

公式中p(δk)表示所述多元算子δk的权重,ck表示δk在当前轮次的使用次数,valik为δk在第i次使用时在有关机器学习模型上的评估指标。

上述公式具体应用举例如下:

假设现有的多元算子集合为δ{ggroupthenmin、groupthenmax、groupthenavg},以上三个多元算子以下简称为g1、g2、g3。初始每个多元算子的权重是相等的,即g1、g2、g3所对应的p(δk)都为1/3,其中,g1、g2、g3为p(δk)中的δk。根据权重概率从多元算子集中选取一个所述多元算子,由于三个算子权重相等,意味着选取到g1、g2、g3的概率是相同的。假设在产生高阶特征的一轮过程中,我们要通过多元算子,产生6个高阶特征。其中,使用了6次多元算子,随机选到了g1、g2、g3、g3、g2、g1,由于是依权重概率选取,注意到也有可能是随机选到了g1、g1、g1、g1、g1、g1这6个多元算子这种极端情况,但不影响分析,本质上权重概率大的算子被选取到的概率就大,通过这6个高阶算子,以及初始的输入特征,可以产生6个候选的高阶特征,那么根据机器学习模型进行评估,则会得到6组结果。假设这6个多元算子g1、g2、g3、g3、g2、g1,对应的6组auc分别为0.80,0.40,0.62,0.60,0.50,0.90。则此时根据公式:

计算出:

g1对应的p(δk){(0.8+0.9)/2{0.85

g2对应的p(δk){(0.4+0.5)/2{0.45

g3对应的p(δk){(0.62+0.60)/2{0.61

对g1、g2、g3所对应的p(δk)进行归一化:

g1_{0.85/(0.85+0.45+0.61){0.445

g2_{0.235

g3_{0.32

由此得到g1、g2、g3新的权重。那么在下次依权重概率选取的时候,g1由于之前的评估效果好,权重变大了,在下一轮特征产生的过程中就更有可能在使用多元算子的时候被选中。

本实施例中,在应用多元算子时,是从特征集f中选择k(k>{2)个特征,进行多元算子的操作。由于k可以取多个值,多元算子又可以选择多个,因此使用多元算子,会产生大量的高阶特征,如果不对其加以控制,将极大影响最终的性能。在具体的业务场景中,每个多元算子的重要性并不相同,本发明提出一种通过动态选择和调整的集合来构造多元算子相关高阶特征的方法。

本实施例中,公开的高阶特征的自动生成方法,通过对原始特征进行预处理,选定合适的原始特征集;根据多种可解释的算子产生候选特征集;对候选特征集进行快速有效评估;输出生成的高阶特征以及特征对应的具体含义。本实施例不仅能自动产生出有效的高阶特征,而且能对产生的高阶特征命名和解释含义。

实施例2

如图5所示,本实施例公开了一种高阶特征的自动生成系统,所述高阶特征的自动生成系统包括:

获取模块1,用于获取输入特征集,所述输入特征集中包含有若干个输入特征;

操作模块2,用于通过对当前的输入特征集中的输入特征进行算子操作生成高阶特征;所述获取模块获取的所述输入特征集中的输入特征均具有对应的名称和含义;

本实施例中的算子,包括算子名称,算子含义与算子执行方式,根据算子产生交叉特征候选。算子主要包括一元算子、二元算子和多元算子。

评估模块3,用于将生成的每一个高阶特征分别加入至输入特征集中,以组成若干组候选特征集,利用选定的机器模型对所述若干组候选特征集进行评估;

更新模块4,用于将评估结果最优的若干个候选特征集中的高阶特征加入至输入特征集中,以得到更新的输入特征集;

判断模块5,用于利用所述机器模型对所述操作模块当前操作的输入特征集进行评估,得到第一评估结果,并判断所述机器模型对所述若干组候选特征集的评估结果是否均劣于所述第一评估结果,若是,则输出更新的输入特征集中的高阶特征,若否,则重新调用操作模块。

判断模块5,还用于在输出更新的输入特征集中的高阶特征时,还输出所述高阶特征的名称和含义。

本实施例中,利用模型来评估候选特征,由于要对每个候选特征进行单独评估,一个简单快速的模型将能极大提升时间效率,逻辑斯特回归模型是一个理想的选择,可根据业务场景进行更具体的选择。同时,数据集过大也将影响评估的时间。当数据集过大时,如果抽样的数据能够较好的衡量整体数据的分布,对数据抽样再进行高阶特征的产生与评估也将大大减少整体的运行时间。

本实施例中评估指标是指准确率、ndcg、auc等,具体到不同的任务场景可以有不同的选择。例如,在一个搜索下,为了把跟用户搜索词相关性高的产品尽可能排在一个列表页的前面,选定评估指标应该和排序相关,如指标auc关注全局的排序,衡量正样本排在负样本前的概率。在这个推荐场景下,为了产生可解释的高阶特征,在此过程中,选定指标为auc,算法模型m可以选定为lr模型。

本实施例中,新产生的高阶特征名称具有如下的形式:[feature][operator],[feature]为原特征,即父特征,[operator]为对父特征操作的算子。对输出的特征按照父特征名称和交叉算子,结合下表解释其含义。

以两个具体的例子进一步说明:

例1:比如说新产生特征名称为[age][disc5]。age是父特征,表示用户的年龄。查表,disc5是一元算子,为特征离散化的含义,则该新特征表示为对年龄离散化5个等级。

例2:新产生特征名称为[[age][disc5],gender,level][groupthenavg]。其中,[age][disc5],gender,level三个是父特征,[age][disc5]是(1)中一元算子作用后的新特征,在此次特征产生的过程中也充当了父特征,gender表示用户性别,level表示用户消费水平等级。查表,groupthenavg是多元算子,特征含义为特征分组后取平均,则该新特征表示为按[age][disc5],gender这两个特征分组,然后组内取level的平均,该特征刻画了用户在不同年龄、不同性别的平均消费水平。

利用模型来评估候选特征,由于要对每个候选特征进行单独评估,一个简单快速的模型将能极大提升时间效率,逻辑斯特回归模型是一个理想的选择,可根据业务场景进行更具体的选择。同时,数据集过大也将影响评估的时间。当数据集过大时,如果抽样的数据能够较好的衡量整体数据的分布,对数据抽样再进行高阶特征的产生与评估也将大大减少整体的运行时间。

如图6所示,本实施例中,获取模块1包括:

获取单元11,用于获取原始特征;

删除单元12,用于对所述原始特征进行分析,删除值缺失率大于第一阈值的特征及相关性高于第二阈值的特征,以得到第一原始特征;

筛选单元13,用于基于所述第一原始特征,筛选出不同类别的特征,以得到输入特征集。

本实施例中对特征的分析主要是根据已有经验设定一些规则。一般值缺失率大于0.5的特征被认为是不可用,需要删除。方差太小的特征,去掉,这样的特征在不同的样本间没有差异,没有区分度,通过设立一个阈值,过滤掉方差太小的特征。例如,一个收集来的特征a通过计算方差是0.5,而根据以往经验,方差大于2的特征才可用,设置阈值为2,则特征a被过滤掉,达到了筛选特征的目的。

本实施例中特征筛选主要考虑丰富性和有效性两个方面。丰富性是为了后面操作中更容易产生有用的高阶特征,而有效性是去掉一些相似度高的特征,减少产生的候选特征的数量。筛选主要依靠规则和算法两方面,丰富性依靠规则,有效性依靠算法。

规则:输入的特征是整个高阶特征自动生成的第一步,这一步的特征筛选靠人为的规则。搜索推荐场景下,特征往往包含用户特征、产品特征、上下文特征(如时间特征)、交叉特征(前面三种特征的一些)四大类,在输入特征时这四类特征应该尽可能的覆盖,才容易产生丰富有效的高阶特征交叉。

算法:计算各个特征之间的皮尔逊相关系数。当两个变量皮尔逊相关系数大于0.7时,被认为是高度相关。此时,随机选择一个特征。经过一轮迭代,会产生一个新的特征集合,重复此过程,直至任意两个特征间的皮尔逊相关系数都小于0.7为止,通过此步骤会筛除掉一部分高度相关的特征。

如图7所示,本实施例中,操作模块2包括:

第一操作单元21,用于对所述当前输入特征集中的输入特征进行一元算子操作,获取基础特征;

本实施例中,一元算子:对于一个特征进行作用产生新的特征。一元算子的作用是对一些特征进行数值清洗与数值转换,主要目的是将非结构化数据转成结构化数据,便于后续进行特征交叉。一元算子有离散化、归一化和其他数值转换的操作。离散化:如对数值特征进行离散化可以将连续特征和日期特征转换为离散的特征。在许多的分类算法中离散化对于提升模型性能有很重要的作用。归一化:将数值特征统一到一个范围内,很多机器学习算法如lr、dnn等对特征的数值大小比较敏感。数值转换:对数值特征取平方、开方、log等操作,使特征数据分布变得平滑。

第二操作单元22,对所述基础特征进行二元算子和/或多元算子操作,生成所述高阶特征。

本实施例中,二元算子:对于两个特征进行作用产生新的特征。如对两个特征进行加减乘除等四则运算,对两个特征进行笛卡儿积操作。通过对两个特征进行运算,可以产生丰富的特征。如用户的消费水平与旅游产品的价格两个特征,进行二元算子除法操作,可以生成衡量出用户对产品的价格的偏好特征。通过二元算子可能会产生出多个有用的特征。

多元算子:使用两个或者多个特征产生一个特征。如先对某两个特征group之后,再按分组对第三个特征取组内的最大值、最小值或者平均值。比如有三个特征,性别、年龄和消费等级,如可按性别、年龄分组,统计每组内消费等级的平均值。通过多元算子的作用,可产生一个刻画不同性别不同年龄消费水平的特征。

本实施例中,算子作用是指对选出的特征使用算子以产生新的特征。例如,现有多元算子groupthenavg和选中的特征性别、年龄和消费等级,性别特征有男、女、未知这三类,年龄等级有7类,分别为[1,2,3,4,5]这5类,消费等级有[1,2,3,4,5]五类,多元算子groupthenavg会按照前两个特征进行分组,比如有[男,1],[男,2],[男,3],...[女,1],[女,2],[女,3],...[未知,1],[未知,2],[未知,3],...等15个组,对每组再取消费等级的平均值。这样就会产生一个新特征,[gender,age,level][groupthenavg]。假设其中一个具体的值为[女,2,5],则该值表示性别为女年龄等级为2的平均消费等级是5,新产生的特征刻画了不同性别不同年龄的平均消费水平。

如图8所示,本实施例中,当对所述基础特征进行多元算子操作时,第二操作单元22包括:

第一选取子单元221,用于根据权重概率从多元算子集中选取一个所述多元算子,所述多元算子集包含groupthenmin、groupthenmax、groupthenavg算子;

第二选取子单元222,用于随机从[2,l]区间内选取m个所述输入特征;所述所述[2,l]中的l为采用多元算子时,选择所述输入特征的最大数量;

第三操作子单元223,用于对所述m个所述输入特征进行多元算子操作;

更新子单元224,用于重复调用上述子单元,产生多个所述高阶特征,并依据所述高阶特征的表现,对所述多元算子的权重,依据公式进行更新,并归一化;所述公式如下:

公式中p(δk)表示所述多元算子δk的权重,ck表示δk在当前轮次的使用次数,valik为δk在第i次使用时在有关机器学习模型上的评估指标。

上述公式具体应用举例如下:

假设现有的多元算子集合为δ{ggroupthenmin、groupthenmax、groupthenavg},以上三个多元算子以下简称为g1、g2、g3。初始每个多元算子的权重是相等的,即g1、g2、g3所对应的p(δk)都为1/3,其中,g1、g2、g3为p(δk)中的δk。根据权重概率从多元算子集中选取一个所述多元算子,由于三个算子权重相等,意味着选取到g1、g2、g3的概率是相同的。假设在产生高阶特征的一轮过程中,我们要通过多元算子,产生6个高阶特征。其中,使用了6次多元算子,随机选到了g1、g2、g3、g3、g2、g1,由于是依权重概率选取,注意到也有可能是随机选到了g1、g1、g1、g1、g1、g1这6个多元算子这种极端情况,但不影响分析,本质上权重概率大的算子被选取到的概率就大,通过这6个高阶算子,以及初始的输入特征,可以产生6个候选的高阶特征,那么根据机器学习模型进行评估,则会得到6组结果。假设这6个多元算子g1、g2、g3、g3、g2、g1,对应的6组auc分别为0.80,0.40,0.62,0.60,0.50,0.90。则此时根据公式:

计算出:

g1对应的p(δk){(0.8+0.9)/2{0.85

g2对应的p(δk){(0.4+0.5)/2{0.45

g3对应的p(δk){(0.62+0.60)/2{0.61

对g1、g2、g3所对应的p(δk)进行归一化:

g1_{0.85/(0.85+0.45+0.61){0.445

g2_{0.235

g3_{0.32

由此得到g1、g2、g3新的权重。那么在下次依权重概率选取的时候,g1由于之前的评估效果好,权重变大了,在下一轮特征产生的过程中就更有可能在使用多元算子的时候被选中。

本实施例中,在应用多元算子时,是从特征集f中选择k(k>{2)个特征,进行多元算子的操作。由于k可以取多个值,多元算子又可以选择多个,因此使用多元算子,会产生大量的高阶特征,如果不对其加以控制,将极大影响最终的性能。在具体的业务场景中,每个多元算子的重要性并不相同,本发明提出一种通过动态选择和调整的集合来构造多元算子相关高阶特征的方法。

本实施例中,公开的高阶特征的自动生成系统,通过对原始特征进行预处理,选定合适的原始特征集;根据多种可解释的算子产生候选特征集;对候选特征集进行快速有效评估;输出生成的高阶特征以及特征对应的具体含义。本实施例不仅能自动产生出有效的高阶特征,而且能对产生的高阶特征命名和解释含义。

实施例3

图9为本发明实施例3提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1所提供的高阶特征的自动生成方法。图9显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图9所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。

总线33包括数据总线、地址总线和控制总线。

存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。

存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的高阶特征的自动生成方法。

电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例4

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的高阶特征的自动生成方法的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所提供的高阶特征的自动生成方法中的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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