掌桥专利:专业的专利平台
掌桥专利
首页

特征合成方法与装置

文献发布时间:2023-06-19 11:14:36


特征合成方法与装置

技术领域

本申请实施例涉及人工智能技术领域,尤其涉及一种特征合成方法与装置。

背景技术

机器学习的应用需要大量的人工干预,这些人工干预表现在:特征提取、模型选择、参数调节等机器学习的各个方面。为了降低机器学习中人工的干预,AutoML(AutomatedMachine Learning,机器自动学习)应用而生,AutoML用于将与特征、模型、优化、评价有关的重要步骤进行自动化地学习,使得机器学习模型无需人工干预即可被应用。

特征工程是AutoML的核心组成部分,包括特征合成、特征生成、特征筛选等步骤。其中,特征合成是生产新特征的重要手段。其针对数据,通过有经验的建模人员所设计的不同变换操作产出新特征。通常情况下,建模人员大部分工作是围绕特征展开的,为了提高建模效果,会尝试不同的特征。

当前主流的特征合成方法是通过人工设计进行特征合成,即指建模人员自行根据应用场景和建模经验设计和实现不同的特征合成算子,产出新特征。但是,人工进行特征合成不仅费时费力,且合成的特征数量有限。

发明内容

本申请实施例提供一种特征合成方法与装置,用于提高微服务之间的调度可靠性。

第一方面,本申请实施例提供一种特征合成方法,包括:

获取用户输入的配置文件,所述配置文件包括原数据的存储路径;

根据所述原数据的存储路径,获得所述原数据;

获取所述原数据的特征定义信息,所述特征定义信息用于指示所述原数据的特征计算逻辑;

根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征。

在第一方面的一种可能的实现方式中,所述获取所述原数据的特征定义信息,包括:

在检测到所述用户输入特征定义文件时,从所述特征定义文件中获得所述原数据的特征定义信息;

在未检测到所述用户输入特征定义文件时,确定所述原数据对应的第一特征算子,根据所述原数据对应的第一特征算子和所述原数据,得到所述原数据的特征定义信息。

在第一方面的一种可能的实现方式中,所述确定所述原数据对应的第一特征算子,包括:

获取所述用户输入的自定义算子文件,根据所述自定义算子文件,生成所述原数据对应的第一特征算子;和/或,

根据所述配置文件中所述用户指定的第二特征算子信息,获得所述第二特征算子,根据所述第二特征算子确定所述原数据对应的第一特征算子。

在第一方面的一种可能的实现方式中,所述根据所述原数据对应的第一特征算子和所述原数据,得到所述原数据的特征定义信息,包括:

基于所述原数据对应的第一特征算子和预设的特征合成原理,得到所述原数据的合成特征的数量阈值和所述合成特征的计算逻辑;

根据所述合成特征的数量阈值和所述合成特征的计算逻辑,形成所述特征定义信息。

在第一方面的一种可能的实现方式中,所述根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征,包括:

从所述特征定义信息中获取所述合成特征的数量阈值;

在确定当前生成的所述合成特征的数量小于所述数量阈值时,根据所述原数据的特征定义信息,继续生成所述原数据的合成特征。

在第一方面的一种可能的实现方式中,所述根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征之前,所述方法还包括:

对所述原数据的数据类型进行检查,若所述原数据的数据类型不是目标数据类型时,将所述原数据的数据类型转换为所述目标数据类型;

所述根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征,包括:

根据所述原数据的特征定义信息,对所述目标数据类型的原数据进行特征合成,得到所述原数据的多个合成特征。

在第一方面的一种可能的实现方式中,所述原数据为单张数据表中的数据,或者,所述原数据为人工合成的初始特征。

在第一方面的一种可能的实现方式中,根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征,包括:

将所述原数据的特征定义信息和所述原数据发送至第一计算设备上,使得所述第一计算设备根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征;或者,

将所述原数据划分为N个子数据,并将所述原数据的特征定义信息发送给N个不同的第二计算设备上的每台第二计算设备,且将所述N个子数据一对一发送给所述N个第二计算设备,使得所述N个第二计算设备中的每一个第二计算设备根据该第二计算设备上的子数据和所述原数据的特征定义信息,对所述子数据进行特征合成,得到所述子数据的至少一个合成特征,其中每个所述子数据的至少一个合成特征构成所述原数据的多个合成特。

第二方面,本申请实施例提供一种特征合成装置,包括:

第一获取单元,用于获取用户输入的配置文件,所述配置文件包括原数据的存储路径;

第二获取单元,用于根据所述原数据的存储路径,获得所述原数据;

处理单元,用于获取所述原数据的特征定义信息,所述特征定义信息用于指示所述原数据的特征计算逻辑;

合成单元,用于根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征。

在第二方面的一种可能的实现方式中,处理单元,具体用于在检测到所述用户输入特征定义文件时,从所述特征定义文件中获得所述原数据的特征定义信息;在未检测到所述用户输入特征定义文件时,确定所述原数据对应的第一特征算子,根据所述原数据对应的第一特征算子和所述原数据,得到所述原数据的特征定义信息。

在第二方面的一种可能的实现方式中,处理单元,具体用于获取所述用户输入的自定义算子文件,根据所述自定义算子文件,生成所述原数据对应的第一特征算子;和/或,根据所述配置文件中所述用户指定的第二特征算子信息,获得所述第二特征算子,根据所述第二特征算子确定所述原数据对应的第一特征算子。

在第二方面的一种可能的实现方式中,处理单元,具体用于基于所述原数据对应的第一特征算子和预设的特征合成原理,得到所述原数据的合成特征的数量阈值和所述合成特征的计算逻辑;根据所述合成特征的数量阈值和所述合成特征的计算逻辑,形成所述特征定义信息。

在第二方面的一种可能的实现方式中,合成单元,具体用于从所述特征定义信息中获取所述合成特征的数量阈值;在确定当前生成的所述合成特征的数量小于所述数量阈值时,根据所述原数据的特征定义信息,继续生成所述原数据的合成特征。

在第二方面的一种可能的实现方式中,合成单元,具体用于对所述原数据的数据类型进行检查,若所述原数据的数据类型不是目标数据类型时,将所述原数据的数据类型转换为所述目标数据类型;根据所述原数据的特征定义信息,对所述目标数据类型的原数据进行特征合成,得到所述原数据的多个合成特征。

在第二方面的一种可能的实现方式中,所述原数据为单张数据表中的数据,或者,所述原数据为人工合成的初始特征。

在第二方面的一种可能的实现方式中,合成单元,具体用于将所述原数据的特征定义信息和所述原数据发送至第一计算设备上,使得所述第一计算设备根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征;或者,

将所述原数据划分为N个子数据,并将所述原数据的特征定义信息发送给N个不同的第二计算设备上的每台第二计算设备,且将所述N个子数据一对一发送给所述N个第二计算设备,使得所述N个第二计算设备中的每一个第二计算设备根据该第二计算设备上的子数据和所述原数据的特征定义信息,对所述子数据进行特征合成,得到所述子数据的至少一个合成特征,其中每个所述子数据的至少一个合成特征构成所述原数据的多个合成特征。

第三方面,本申请实施例还提供一种计算设备,所述计算设备包括存储器和处理器;

所述存储器用于存储计算机程序;

所述处理器用于执行所述计算机程序,以实现上述第一方面任一项所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如第一方面任一项所述的方法。

第五方面,本申请实施例提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得计算机实施第一方面任一项所述的方法。

本申请实施例提供的特征合成方法与装置,通过获取用户输入的配置文件,所述配置文件包括原数据的存储路径;根据所述原数据的存储路径,获得所述原数据;获取所述原数据的特征定义信息,所述特征定义信息用于指示所述原数据的特征计算逻辑;根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征。即本申请实施例实现特征合成的自动化,解决了人工进行特征合成时费时费力,且合成的特征数量有限的问题。另外,可以支持分布式系统,进而解决了大数据量时特征合成计算时间长的问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例的应用场景示意图;

图2为本申请一实施例提供的特征合成方法的流程示意图;

图3为本申请实施例涉及的分布式系统示意图;

图4为本申请另一实施例提供的特征合成方法的流程示意图;

图5为本申请实施例提供的特征合成装置的一种结构示意图;

图6为本申请实施例涉及的计算设备的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应理解,在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。

在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。

另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。

为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:

人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

从机器学习角度讲,AutoML可以看作是一个在给定数据和任务上学习和泛化能力非常强大的系统。从自动化角度讲,AutoML则可以看作是设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。

AutoML的核心任务:更好的性能、无人工干预、较低的计算代价。

AutoML的主要问题可以由三部分构成:特征工程、模型选择、算法选择。本申请实施例主要涉及上述特征工程。

特征工程在机器学习中有着举足轻重的作用。在AutoML中,自动特征工程的目的是自动地发掘并构造相关的特征,使得模型可以有最优的表现。除此之外,还包含一些特定的特征增强方法,例如特征合成、特征生成、特征筛选等。这些步骤目前来说都没有达到自动化的阶段。

对于特征工程中的特征合成,目前通过建模人员自行根据应用场景和建模经验设计和实现不同的特征合成算子,产出新特征。但是,目前人工进行特征合成不仅费时费力,且合成的特征数量有限。

为了解决上述技术问题,本申请实施例通过特征合成工具进行特征合成,实现特征合成的自动化,解决了人工进行特征合成时费时费力,且合成的特征数量有限的问题。

下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本申请实施例的应用场景示意图,如图1所示包括数据库、特征合成工具。

其中,数据库中包括原数据。

特征合成工具包括多个特征算子,例如算子1、算子2、算子3和算子4,同时,特征合成工具还包括单机或分布式系统,即本申请实施例的特征合成方法不仅适用于单机,还适用于分布式系统。例如,当原数据的数据量较少时,可以选择单机进行特征合成,当原数据的数据量较大时,可以选择分布式系统进行特征合成。

单机或分布式系统使用特征合成工具中的多个特征算子对原数据进行特征合成,得到原数据的多个合成特征。

在一些实施例中,原始特征可以理解为原数据本身,这样可以将原数据的合成特征和原始特征作为该原数据的特征数据进行后续的特征筛选以及模型训练等步骤,对于特征筛选和模型训练等步骤参照已有技术的描述,本申请在此不再赘述。

下面结合图2对本申请实施例提供的特征合成方法进行介绍。

图2为本申请一实施例提供的特征合成方法的流程示意图,如图2所示,该特征合成方法包括:

S201、获取用户输入的配置文件。

S202、根据原数据的存储路径,获得原数据。

本申请实施例的执行主体为具有特征合成功能的装置,例如为特征合成装置,该特征合成装置可以为单独的计算设备,在一些实施例中,上述特征合成装置还可以是计算设备中具有数据处理功能的部件,例如为计算设备中的处理器。

可选的,上述计算设备可以理解为图1中所示的特征合成工具。

在一些实施例中,计算设备可以为任意具有数据计算功能的设备,例如为智能手机、台式电脑、笔记本、AI设备、智能电视、车载设备、可穿戴设备、工业设备、服务器等。

本申请涉及的合成特征可以理解为:利用不同的特征计算方式,以数据或特征为输入信息计算获得新的特征。

本申请涉及的特征算子可以理解为:对特征进行操作得到新特征的方法,通常多为聚合和变换等多种计算方式。

上述配置文件(conf)包括原数据的存储路径。例如,原数据存放在某一个路径下面,用户需要将原数据的存储路径配置在上述配置文件中。计算设备获得用户上传的配置文件后,解析该配置文件获得该原数据的存储路径,并根据原数据的存储路径,读取原数据。

在一些实施例中,上述原数据的存储路径为原数据在数据库中的存储路径,这样计算设备可以根据原数据的存储路径,从图1所示的数据库中读取原数据。

在一些实施例中,上述原数据为单张数据表中的数据,即单表(singe table)数据。也就是说,本申请实施例的方法可以支持单表形式的特征合成。实际业务中,基于单表进行特征合成的场景居多,用户通过本申请的方法可以很容易接入单表进行特征合成。

在一些实施例中,上述原数据为人工合成的初始特征。即本申请实施例可将原始人工合成的初始特征作为原数据,对该初始特征进行深度合成,获取高阶合成特征,实现人工和自动特征合成的联合,帮助用户得到更多的合成特征。

在一些实施例中,配置文件还包括特征算子指示信息等,例如从预设的多个特征算子中指示一个或几个特征算子用于计算该原数据的合成特征。

S203、获取原数据的特征定义信息。

其中,特征定义信息用于指示原数据的特征计算逻辑。

在一些实施例中,用户除了输入配置文件外,可选的还可以输入特征定义文件,这样根据用户是否输入特征定义文件,获取原数据的特征定义信息的方式也不同。即上述S203中获取原数据的特征定义信息的方式包括但不限于如下几种:

方式一,在检测到用户输入特征定义文件时,从特征定义文件中获得原数据的特征定义信息。

用户输入的特征定义文件中已经详细描述了原数据的特征计算逻辑等信息,可以通过解析用户输入的特征定义文件,得到原数据的特征定义信息。

方式二,在未检测到用户输入特征定义文件时,上述S203包括:S203-A1和S203-A2:

S203-A1、确定原数据对应的第一特征算子;

S203-A2、根据原数据对应的第一特征算子和原数据,得到原数据的特征定义信息。

当用户未输入特征定义文件时,本申请可以采用方式二的方法,得到原数据的特征定义信息,具体是,确定原数据对应的第一特征算子,根据原数据对应的第一特征算子和原数据,得到原数据的特征定义信息。例如,模型包括训练阶段和测试阶段,在训练阶段,需要生成训练集,即对原数据按第一特征算子进行特征合成,形成新的合成特征,将该新的合成特征作为训练集,同时保存形成该合成特征时生成的特征定义文件,该特征定义文件用于保存原数据的特征计算逻辑。在后期的模型测试阶段,同样选用该原数据生成测试集时,可以将训练集形成的特征定义文件作为测试集的特征定义文件,进而从该特征定义文件中获得原数据的特征定义信息。

本申请实施例支持特征定义已知(即上述方式一)和未知(即上述方式二)两种场景。当通过训练集完成特征合成之后,会派生出新合成特征,同时也获得了这些新的合成特征的定义。此时在测试集上没有必要重新实现计算逻辑,而是参考训练集上的新特征定义直接计算。

在一些实施例中,上述S203-A1中确定原数据对应的第一特征算子的方式包括但不限于如下几种:

方式一,若用户输入自定义算子文件,则获取用户输入的自定义算子文件,根据自定义算子文件,生成原数据对应的第一特征算子。

例如,该计算设备可以向用户提供自定义算子的界面,用户在该界面上输入自定义算子文件,例如用户简单定义实现算子功能,该计算设备可以将用户输入的自定义算子文件进行转换,自动生成自定义特征算子,并将该自定义算子确定为该原数据对应的第一特征算子进行后期的特征合成计算。

方式二,配置文件中包括用户指定的第二特征算子信息,这样根据配置文件中用户指定的第二特征算子信息,获得第二特征算子,根据第二特征算子确定原数据对应的第一特征算子。

在一些实施例中,本申请计算设备支持如下至少一种类型的特征算子:

支持内建算子,支持特征工具(Feature tools)自建算子,通常默认参数不可调。

支持可传参算子,算子种类覆盖内建算子,提供可传参功能。

支持文本算子,针对文本类特征,特征合成工具默认对数据进行处理,满足Feature tools要求,利用其算子计算文本类特征。

支持时间算子,针对时间类型数据,特征合成工具会对数据进行转换,满足Feature tools要求,利用多种时间算子计算时间特征。

也就是说,本申请的计算设备自带上述至少一种类型的特征算子,且每一种类型的特征算子至少包括一个特征算子。基于此,用户可以从计算设备中自动的多个特征算子中选择第二特征算子,并将选定的第二特征算子信息(例如第二特征算子的标识)携带在配置文件中上传至计算设备。计算设备解析配置文件得到配置文件携带的第二特征算子信息,根据第二特征算子信息从自带的多个特征算子中确定第二特征算子,将确定的第二特征算子作为原数据对应的第一特征算子。

方式三,若用户输入自定义算子文件,且配置文件中包括用户指定的第二特征算子信息,此时获取用户输入的自定义算子文件,根据自定义算子文件,生成原数据对应的一部分第一特征算子,具体参照上述方式一。另外,根据配置文件中用户指定的第二特征算子信息,获得第二特征算子,并将第二特征算子确定原数据对应的另一部分第一特征算子,具体参照上述方式二。这两部分第一特征算子形成原数据对应的多个第一特征算子。

本申请支持方便用户使用多种类型特征合成算子。实际业务对特征算子在不同场景下有个性化需求,通过本申请的方法,用户可以方便接入大量预定义算子,也可以方便接入自定义合成算子。用户不需要做额外操作,计算设备在后台自行解析不同类型算子。

根据上述方式一、方式二或方式三,得到原数据对应的第一特征算子,接着执行S203-A2,根据原数据对应的第一特征算子和原数据,得到原数据的特征定义信息。

在一些实施例中,上述S203-A2包括:基于原数据对应的第一特征算子和预设的特征合成原理,得到原数据的合成特征的数量阈值和合成特征的计算逻辑;根据合成特征的数量阈值和合成特征的计算逻辑,形成特征定义信息。

在一些实施例中,本申请基于深度特征合成(Deep Feature Synthesis,DFS)方法进行特征合成,对应的上述预设的特征合成原理为DFS的深度特征合成原理。

其中,DFS是一种自动生成关系数据集的特征。本质上,算法将数据中的关系跟踪到基本字段,然后沿该路径顺序应用数学函数创建最终功能。通过依次堆叠计算,可以将每个新功能定义为具有一定深度d。因此,将算法称为“深度特征”合成。

根据上述步骤,计算设备可以得到原数据的特征定义信息,接着执行如下步骤S204。

S204、根据原数据的特征定义信息,对原数据进行特征合成,得到原数据的多个合成特征。

如图1所示,本申请实施例的方法即可以支持单机进行特征合成,还支持分布式系统进行特征合成,即上述S204的实现方式至少包括如下两种实现方式。

方式一,将原数据的特征定义信息和原数据发送至第一计算设备上,使得第一计算设备根据原数据的特征定义信息,对原数据进行特征合成,得到原数据的多个合成特征。

即可以采用单机进行特征合成,例如,将原数据的特征定义信息和原数据发送至一台第一计算设备上,使得第一计算设备根据原数据的特征定义信息,对原数据进行特征合成,得到原数据的多个合成特征。

可选的,上述第一计算设备可以为执行上述S201至S203步骤的计算设备。

可选的,上述第一计算设备为与执行上述S201至S203步骤的计算设备不同的计算设备。

若第一计算设备与执行本申请方法的计算设备不同,则该第一计算设备计算出原数据的多个合成特征后,将计算的合成特征发送给执行本申请方法的计算设备。

在一些实施例中,当原数据的数据量较少时,采用上述方式一进行特征合成。

方式二,将原数据划分为N个子数据,并将原数据的特征定义信息发送给N个不同的第二计算设备中的每台第二计算设备,且将N个子数据一对一发送给N个第二计算设备,使得N个第二计算设备中的每一个第二计算设备根据该第二计算设备上的子数据和原数据的特征定义信息,对子数据进行特征合成,得到该子数据的至少一个合成特征,其中每个子数据的至少一个合成特征构成原数据的多个合成特征。

如图3所示,对原数据进行数据切片,形成N个子数据,将这N个子数据分别发送给分布式系统中的N个第二计算设备上,这样每个第二计算设备上包括一个子数据。同时,将上述步骤得到的原数据的特征定义信息发送给每个第二计算设备,其中原数据的特征定义信息包括多个特征算子的定义信息,例如图3所示的原数据的特征定义信息包括4个特征算子的定义信息。

其中N个第二计算设备进行特征合成的过程均一致,为了便于描述以图3中第一个第二计算设备为例进行说明,假设该第二计算设备1包括子数据1,该第二计算设备1根据原数据的特征定义信息,例如图3中的4个特征算子,对子数据1进行特征合成,生成该子数据的多个合成特征。假设预设的特征合成深度为1,则如图3所示,4个特征算子中每个特征算子对子数据1进行特征合成,生成4个合成特征,即每个特征算子计算得到一个合成特征。假设预设的特征合成深度为2,则每个特征算子对应合成一个合成特征外,各算子两两相互嵌套,合成新的合成特征。

如图3所示,每个第二计算设备合成多个合成特征,将合成的合成特征输出,这样每个第二计算设备输出的合成特征构成原数据的合成特征。

实际业务中,存在数据量很大的场景,通过上述方式二使用分布式系统进行特征合成,解决了大数据量时特征合成计算时间长等困难。

另外,本申请支持分布式特征合成,即基于Spark的分布式原理,实现了对特征算子的分布式计算。通过数据并行,将数据分成不同的小的子数据集,将特征合成算子实现为Spark的UDF,并应用到每个子数据集获得合成特征。

可选的,本申请实施例除了用于于Spark分布式系统外,还可以应用于其他的分布式系统,例如应用于hadoop分布式系统。

本申请实施例提供的特征合成方法,通过获取用户输入的配置文件,所述配置文件包括原数据的存储路径;根据所述原数据的存储路径,获得所述原数据;获取所述原数据的特征定义信息,所述特征定义信息用于指示所述原数据的特征计算逻辑;根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征。即本申请实施例实现特征合成的自动化,解决了人工进行特征合成时费时费力,且合成的特征数量有限的问题。另外,可以支持分布式系统,进而解决了大数据量时特征合成计算时间长的问题。

图4为本申请另一实施例提供的特征合成方法的流程示意图,图5为本申请实施例涉及的特征合成的原理示意图。如图4和图5所示,该特征合成方法包括:

S301、获取用户输入的配置文件,该配置文件包括原数据的存储路径;

S302、根据原数据的存储路径,获得原数据。

上述S301和S302的具体实现过程参照上述S201和S202的具体描述,在此不再赘述。

S303、对原数据的数据类型进行检查,若原数据的数据类型不是目标数据类型时,将原数据的数据类型转换为目标数据类型。

例如,对原数据的数据类型和数据缺失值等进行检查。若原数据的数据类型为时间类型或文本类型数据,则需要将时间类型或文本类型的数据进行处理转为满足目标数据类型,例如转换为Feature tools可计算要求的数据类型。

S304、获取用户输入的自定义算子文件,根据自定义算子文件,生成原数据对应的第一特征算子;和/或,根据配置文件中用户指定的第二特征算子信息,获得第二特征算子,根据第二特征算子确定原数据对应的第一特征算子。

其中,上述S304的具体实现过程参照上述S203-A1中的方式一、方式二和方式三的具体描述,在此不再赘述。

需要说明的是,上述S304与上述S303在执行时没有先后顺序,例如,S304在上述S303之前执行,或者在S303之后执行,或者与上述S303同时执行,本申请对此不做限制。

S305、对原数据对应的第一特征算子进行验证。

根据上述S304的方法,得到原数据对应的第一特征算子后,对该第一特征算子进行检查,例如对第一特征算子中的传参算子、时间算子、自定义算子进行重点检查。

在一些实施例中,该步骤还包括根据配置文件中的算子组装信息,对不同的第一特征算子按要求进行处理和组装,为下一步特征计算做准备,例如第一特征算子包括f(x)和g(x),若特征合成深度为2,则对第一特征算子包括f(x)和g(x)进行组装,得到f(g(x))、g(f(x))等,需要说明的是,上述两个特征算子的组装方式除了相互嵌套外,还包括其他的组装方式,本申请对此不作限制。

S306、判断是否检查到用户输入的特征定义文件,若检测到用户输入特征定义文件时执行S307,若未检测到用户输入特征定义文件时执行S308。

S307、从用户输入的特征定义文件中获得原数据的特征定义信息。

S308、根据原数据对应的第一特征算子和原数据,得到原数据的特征定义信息。

例如,基于原数据对应的第一特征算子和预设的特征合成原理,得到原数据的合成特征的数量阈值和合成特征的计算逻辑;根据合成特征的数量阈值和合成特征的计算逻辑,形成特征定义信息。具体参照上述S203中的方式二的描述,在此不再赘述。

当特征算子过多,且合成深度过深时会产生大量无意义特征,并会显著增加计算量,因此需要对特征维度进行约束。具体执行如下S309至S312的步骤。

S309、从特征定义信息中获取合成特征的数量阈值T。

S310、在确定当前生成的合成特征数量i小于数量阈值T时,执行S311,在确定当前生成的合成特征的数量i等于数量阈值T时,执行S312。

S311、根据原数据的特征定义信息,继续合成原数据的合成特征。

例如,根据原数据的特征定义信息,使用DFS方式合成原数据的合成特征。

S312、保存原数据的合成特征。

在一些实施例中,如图5所示,将合成特征保存为Csv/pickle格式。

在一些实施例中,还保存特征定义文件,形成原数据对应的特征定义文件。

在一些实施例中,如图5所示,将特征定义文件保存为Json/npz格式。

S313、结束。

在一些实施例中,本申请基于Feature tools的特征合成工具,整体上提供了一个实际生产可用的特征工具,其用户接入方便,通过提供一个配置文件,工具即可在后台完成特征合成计算。工具在后台解析出用户的数据路径、特征算子类型、应用场景,并根据不同的配置在程序中选择相应的实现方式。这个过程对用户是不需要做任何额外操作。

本申请实施例提供的特征合成方法,能够帮助初级建模人员在没有太多经验和堆业务不太熟悉的情况下,不用投入太多精力就能获得更多的特征。另外,在建模初期的特征抽取阶段,可直接由原数据合成特征,作为特征提取的工具。也可适用于当人工设计特征不足时,通过特征合成工具,产出更多特征。

应理解,图1和图5仅为本申请的示例,不应理解为对本申请的限制。

以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。

上文结合图1和图4,详细描述了本申请的方法实施例,下文结合图5至图6,详细描述本申请的装置实施例。

图5为本申请实施例提供的特征合成装置的一种结构示意图。

如图5所示,该特征合成装置100可以包括:

第一获取单元110,用于获取用户输入的配置文件,所述配置文件包括原数据的存储路径;

第二获取单元120,用于根据所述原数据的存储路径,获得所述原数据;

处理单元130,用于获取所述原数据的特征定义信息,所述特征定义信息用于指示所述原数据的特征计算逻辑;

合成单元140,用于根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征。

在一些实施例中,处理单元130,具体用于在检测到所述用户输入特征定义文件时,从所述特征定义文件中获得所述原数据的特征定义信息;在未检测到所述用户输入特征定义文件时,确定所述原数据对应的第一特征算子,根据所述原数据对应的第一特征算子和所述原数据,得到所述原数据的特征定义信息。

在一些实施例中,处理单元130,具体用于获取所述用户输入的自定义算子文件,根据所述自定义算子文件,生成所述原数据对应的第一特征算子;和/或,根据所述配置文件中所述用户指定的第二特征算子信息,获得所述第二特征算子,根据所述第二特征算子确定所述原数据对应的第一特征算子。

在一些实施例中,处理单元130,具体用于基于所述原数据对应的第一特征算子和预设的特征合成原理,得到所述原数据的合成特征的数量阈值和所述合成特征的计算逻辑;根据所述合成特征的数量阈值和所述合成特征的计算逻辑,形成所述特征定义信息。

在一些实施例中,合成单元140,具体用于从所述特征定义信息中获取所述合成特征的数量阈值;在确定当前生成的所述合成特征的数量小于所述数量阈值时,根据所述原数据的特征定义信息,继续生成所述原数据的合成特征。

在一些实施例中,合成单元140,具体用于对所述原数据的数据类型进行检查,若所述原数据的数据类型不是目标数据类型时,将所述原数据的数据类型转换为所述目标数据类型;根据所述原数据的特征定义信息,对所述目标数据类型的原数据进行特征合成,得到所述原数据的多个合成特征。

在一些实施例中,所述原数据为单张数据表中的数据,或者,所述原数据为人工合成的初始特征。

在一些实施例中,合成单元140,具体用于将所述原数据的特征定义信息和所述原数据发送至第一计算设备上,使得所述第一计算设备根据所述原数据的特征定义信息,对所述原数据进行特征合成,得到所述原数据的多个合成特征;或者,

将所述原数据划分为N个子数据,并将所述原数据的特征定义信息发送给N个不同的第二计算设备上的每台第二计算设备,且将所述N个子数据一对一发送给所述N个第二计算设备,使得所述N个第二计算设备中的每一个第二计算设备根据该第二计算设备上的子数据和所述原数据的特征定义信息,对所述子数据进行特征合成,得到所述子数据的至少一个合成特征,其中每个所述子数据的至少一个合成特征构成所述原数据的多个合成特征。

应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图5所示的装置100可以执行本申请实施例的方法,并且装置100中的各个单元的前述和其它操作和/或功能分别为了实现各个方法中的相应流程,为了简洁,在此不再赘述。

图6为本申请实施例涉及的计算设备的框图,该计算设备用于执行上述实施例的动作生成方法,具体参见上述方法实施例中的说明。

图6所示的计算设备400包括存储器401、处理器402、通信接口403。存储器401、处理器402、通信接口403之间彼此通信连接。例如,存储器401、处理器402、通信接口403之间可以采用网络连接的方式,实现通信连接。或者,上述计算设备400还可以包括总线404。存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接。图6是以存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接的计算设备400。

存储器401可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器401可以存储程序,当存储器401中存储的程序被处理器402执行时,处理器402和通信接口403用于执行上述方法。

处理器402可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路。

处理器402还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的方法可以通过处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器402还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器402读取存储器401中的信息,结合其硬件完成本申请实施例的方法。

通信接口403使用例如但不限于收发器一类的收发模块,来实现计算设备400与其他设备或通信网络之间的通信。例如,可以通过通信接口403获取数据集。

当上述计算设备400包括总线404时,总线404可包括在计算设备400各个部件(例如,存储器401、处理器402、通信接口403)之间传送信息的通路。

根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。

根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。

综上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

相关技术
  • 基于声学特征与文本情感特征融合的端到端语音合成方法及系统
  • 基于并行随机采样与传播的地形非特征区域合成方法、装置和电子设备
技术分类

06120112858402