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

一种分布式架构的特征自动生成方法和系统

文献发布时间:2023-06-19 09:55:50


一种分布式架构的特征自动生成方法和系统

技术领域

本发明涉及机器学习技术领域,更具体地,涉及一种分布式架构的特征自动生成方法和系统。

背景技术

随着大数据人工智能技术的普及,通过机器学习算法进行数据分析处理的方法逐步被各个行业的工程人员所采用。同时,为了应对日益增长的大数据处理需要,分布式计算已经被广泛应用到数据处理与计算中。

机器学习算法的输入数据被称为特征,是通过一系列工程方法将原始数据加工而成的。目前,特征生成方法有如下几种:

1)人工特征生成:技术人员经过底层数据的清洗,筛选,特征逻辑的设计,开发特征计算代码等过程。需要花费技术人员大量的时间,效率很低。尤其是需要对大数据进行加工处理时,需要根据处理方法针对性的设计分布式处理架构,此时依赖于技术人员的处理经验与工程能力。

2)半自动特征生成:现有的机器学习平台,可基于图形界面的交互方式来完成特征生成流程。流程主要为:技术人员指定特征生成逻辑,并手动输入到平台中,平台根据用户指定特征生成逻辑进行计算,生成特征。该方法依赖于技术人员的特征开发经验,无法对非专业人员使用,并且在需要生成大量特征时,效率较低。

3)自动特征生成:自动特征生成是将特征生成的逻辑进行抽象、实现后固定下来,用于自动处理数据生成特征的一种方法。自动特征生成一般不依赖于使用人员的技术能力与业务经验,是一种更加智能化、高效率、低门槛的特征生成方法。但是目前自动特征生成算法仍不成熟,尤其在大数据处理的实际情况下,还没有可靠的分布式计算方法。

发明内容

针对背景技术中的问题,本发明的明目的是:自动对原始数据进行处理分析,生成正确的有效的特征。对于非专业技术人员,可以通过本发明的系统方便快捷的生成供模型建模使用的特征变量。对于专业技术人员,可以通过本发明的系统快速测试、分析或迭代特征。

本发明提出一种分布式架构的特征自动生成方法,包括:S1,从数据库中抽取样本对应的数据,每张表存储为一张新的数据表;S2,对抽取的数据进行清洗加工;S3,将数据表进行分区,使得归属同一个样本的所有数据都存放到同一个分区中;S4,采用分布式计算引擎对数据进行特征生成;S5,将生成的特征数据文件进行合并,合成一个完整的特征数据文件。

本发明还提出一种分布式架构的特征自动生成系统,包括:数据抽取单元,从数据库中抽取样本对应的数据,每张表存储为一张新的数据表;数据加工单元,对抽取的数据进行清洗加工;数据分区单元,将数据表进行分区,使得归属同一个样本的所有数据都存放到同一个分区中;特征生成单元,为分布式计算引擎,对数据进行特征生成;特征合并单元,将特征生成单元生成的特征数据文件进行合并,合成一个完整的特征数据文件。

与现有技术相比,本发明的优点有:

(1)实现了一种针对特征自动生成算法的分布式架构,能够应用分布式计算高效率的进行特征自动生成,能够进行大数据处理,保证了特征的高效生成。

(2)该架构解决了分布式计算场景下特征自动生成需要保证的特征一致性问题,满足并行生成特征。

附图说明

为了更容易理解本发明,将通过参照附图中示出的具体实施方式更详细地描述本发明。这些附图只描绘了本发明的典型实施方式,不应认为对本发明保护范围的限制。

图1为本发明的方法的一个实施例的流程图。

图2为本发明的方法的数据分区的示例性数据表。

图3为本发明的方法的数据分区之后的示例性结果。

图4为本发明的方法的特征计算的一个实施例的流程图。

图5为本发明的系统的一个实施例的结构原理图。

具体实施方式

下面参照附图描述本发明的实施方式,其中相同的部件用相同的附图标记表示。在不冲突的情况下,下述的实施例及实施例中的技术特征可以相互组合。

如图1所示,本发明的方法包括步骤S1,在步骤S1中进行数据抽取:从数据库中抽取样本对应的数据,每张表存储为一张新的数据表。

在步骤S2中进行数据清洗:对抽取的数据进行清洗加工。例如包括:乱码数据置空;数据回溯;数据字段名统一重命名;数据去重等。

在步骤S3中进行数据分区:将数据表进行分区,使得归属同一个样本的所有数据都存放到同一个分区中。具体地,如2所示,样本表与数据表一关联,数据表一与数据表二关联。

S31,对样本表随机给定分区号(partition_id),不同的样本可以给定相同的分区号,之后相同分区号的数据被划分到同一个分区中。其中,每一个分区划分的样本数量应该根据计算资源的具体情况而定。在一个示例中,采用的标准是使得一个分区的数据计算不会超过单个机器的资源上限,一般经验值为一个分区包含1-1000个样本。

S32,从样本表开始,根据表的关联关系,依次传递分区号,使得每一条数据都给定一个分区号,如此可以让归属于同一样本的数据得到相同的分区号。

S33,在所有的数据表都给定分区号之后,将样本表及数据表根据分区号进行分区存储,相同分区号的数据被划分到同一个分区下,并且数据仍然按照原来的数据表结构进行保存,划分的结果示意图如3所示。

再次参照图1,本发明的方法包括步骤S4,在步骤S4进行特征计算:采用分布式计算引擎(如Apache Spark)对数据进行特征生成。计算时采用对分区号进行并行,每个子节点计算时根据传入的分区号取得对应分区的样本和数据,然后进行计算操作。

优选地,为了保证每个子节点自动生成的特征列名是一致的,可以采用如下方法,如图4所示:

S41,设置主节点,主节点调用某一个子节点(如子节点1)进行特征计算,子节点读取对应分区的数据,进行特征生成任务。由于该步骤仅为得到具体的特征列名,因此在某些特征自动生成算法中不需要进行具体的数值计算,仅采用生成算法得到生成后的特征列名,返回给主节点。

所述特征生成任务指任意的单机特征生成处理方法,例如:某特征生成算法为将数据表中所有的数值型字段求和,将所有非数值型字段求长度和等。当然,这里也可以是单机的自动特征生成算法,例如featuretools的特征生成算法。

S42,主节点将生成的特征列名数据发送给每一个子节点。

S43,每个子节点根据具体的特征列名计算对应的特征数据。由此保证了每个子节点计算得到的特征列名是相同且有序的,计算完成后将生成的特征数据文件进行保存。

再次参照图1,本发明的方法包括步骤S5,在步骤S5进行特征合并:将每个子节点生成的特征数据文件进行合并,合成一个完整的特征数据文件。由于每个子节点计算的特征列名是相同且有序的,该步骤仅需要将各个子节点计算的特征数据文件进行纵向的拼接即可。

如图5所示,本发明还提出了一种分布式架构的特征自动生成系统,所述系统包括:数据抽取单元、数据清洗单元、数据分区单元、特征计算单元和特征合并单元。

数据抽取单元实施如前所述步骤S1中的过程。数据清洗单元实施如前所述步骤S2中的过程。数据分区实施完成如前所述步骤S3中的过程。特征计算单元实施如前所述步骤S4中的过程。特征合并单元实施如前所述步骤S5中的步骤。

其中,特征计算单元包括多个主节点和子节点。主节点和子节点实施如前所述步骤S41-S43所述的步骤。

与现有的特征自动生成算法相比,本发明提出的分布式架构有以下优点:

(1)兼容现有的单机运行的特征自动生成算法:本架构中,每个子节点的特征计算与单机计算过程一致,因此可以直接对接使用;

(2)使用分布式计算大幅提高了特征自动生成算法在大数据计算情况下的可能性和运行效率;

(3)保证了不同子节点生成的特征列名的一致性,不会造成不同节点生成不同特征的情况。

本发明已经经过开发、测试,测试使用结果表明本架构达到了预期目的,能够大幅提高特征开发的效率,能够满足大数据运算需要,能够满足特征一致性的要求。

如图5所示,本发明还提出一种分布式架构的特征自动生成系统,包括:数据抽取单元、数据加工单元、数据分区单元、特征生成单元、特征合并单元。

样本抽取单元从数据库中抽取样本对应的数据,每张表存储为一张新的数据表。

数据加工单元对抽取的数据进行清洗加工。

数据分区单元将数据表进行分区,使得归属同一个样本的所有数据都存放到同一个分区中。更具体地,数据分区单元,对样本表随机给定分区号,不同的样本可以给定相同的分区号,之后相同分区号的数据被划分到同一个分区中;从样本表开始,根据表的关联关系,依次传递分区号,使得每一条数据都给定一个分区号;在所有的数据表都给定分区号之后,将样本表及数据表根据分区号进行分区存储,相同分区号的数据被划分到同一个分区下。

特征生成单元对数据进行特征生成,特征生成单元采用分布式设计,为分布式计算引擎。具体地,特征生成单元包括多个主节点和多个子节点。

主节点调用某一个子节点进行特征计算,子节点读取对应分区的数据,进行特征生成。主节点将生成的特征列名数据发送给每一个子节点。每个子节点根据具体的特征列名计算对应的特征数据。

特征合并单元将每个子节点生成的特征数据文件进行合并,合成一个完整的特征数据文件。

以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

相关技术
  • 一种分布式架构的特征自动生成方法和系统
  • 一种基于随机游走的流量特征自动生成方法与系统
技术分类

06120112358686