对输入数据记录集执行基于集成模型的预测的方法和系统的制作方法

文档序号:6621367阅读:219来源:国知局
对输入数据记录集执行基于集成模型的预测的方法和系统的制作方法
【专利摘要】本发明提供了一种对输入数据记录集(IDS)执行基于集成模型(100)的预测的方法和系统,该方法包括:为所述集成模型中的每个树创建(502)分配表(AT1-AT3),每个分配表将输入数据集中的所有数据记录分配到所述树的根节点(NOT1,NOT2,NOT3);将每个分配表拆分(504)成不相交的子表(AXT1.1-AXT1.10;AXT2.1-AXT2.10;AXT3.1-AXT3.10);将每个子表存储(506)到相应的一个数据切片中;将所有树的根节点(NOT1,NOT2,NOT3)用作(510)对应于所有树的当前级的当前节点集;由其各自的数据切片包括一个或多个子表的所有处理单元并行执行(512)一次或多次迭代,从而将数据记录从树的当前节点分配和去分配;以及根据数据记录到所有树的叶节点的分配来计算预测结果。
【专利说明】对输入数据记录集执行基于集成模型的预测的方法和系统

【技术领域】
[0001] 本发明涉及计算机实现的预测方法领域。更具体地,本发明涉及使用决策树或回 归树来用于自动预测。

【背景技术】
[0002] 决策树和回归树是广泛使用的预测模型。决策树是可以用来将输入数据分成不同 的预定类的数据结构。回归树是可以用来根据输入数据计算数据值形式(例如,整数)的预 测结果的数据结构。下面会将根据一些输入数据来计算结果数据值和分成预定类称为"预 测"。
[0003] 为了增加准确性,通常的方法是使用多个决策树的组合或者多个回归树的组合来 计算预测。所述树的集合被称为"树集成模型"或者"集成模型"(ensemble model)。需要 使用合适的组合方案对集成模型中每个树的预测进行组合,例如用于决策树集成的未加权 或加权投票函数和用于回归树集成的未加权或加权平均。
[0004] 对预测使用单个树模型通常是快速处理,即使是改善的树模型。不幸的是,对于可 能包括几千个单个的树的集成模型来说不是这样的:使用N个树的集成来预测结果所需的 时间是使用单个树模型时所需的预测时间的N倍。从而,通过使用多个树获得的精度上的 改进会带来高计算成本的缺点。
[0005] 基于集成树的预测的很大的计算成本也是执行(分析)数据库中的这些算法的障 碍,所述算法必须提供足够的处理能力来执行在多个数据库表上的复杂连接(join)和其 他需要大量计算的任务,因此不能在基于树的预测上花太多的CPU能力。
[0006] 有些数据库内的分析环境,诸如IBM Netezza分析,已经包括一些基于决策树和回 归树的预测逻辑。基于存储的程序和用户自定义的函数或集合来实施所述逻辑。大量的开 销与采用所述基于树的预测逻辑有关,因为集成模型的不同树在其上运行的输入数据集必 须是冗余存储的。另外,针对每个树的临时表创建和存储程序的调用会增加计算开销。当 在同一输入数据集上顺序处理树时也可能产生后一种开销。因此,必须要冗余地创建和保 持输入数据集的表和索引结构。这增加了处理成本,并减慢了当前的数据库内分析方案中 的基于树的预测。通常,使用的输入数据集是小的或者中等大小的。在这种情况下,与实际 预测的计算成本有关的输入数据集及其副本的处理成本在存储器和CPU消耗方面是特别 昂贵的。


【发明内容】

[0007] 本发明实施方式的目的是提供一种使用集成模型来自动预测的改进的方法。通过 独立权利要求的主题解决所述目的。从属权利要求描述了优选的实施方式。除非明确说明, 否则本发明的实施方式可以相互自由组合。
[0008] 在此使用的"数据库"是由数据库管理系统(DBMS)管理的有组织的数据集合。特 别地,DBMS可以是列型或关系型DBMS。DBMS的示例众所周知的有诸如MySQL、PostgreSQL、 SQLite 和 IBM DB2 的 DBMS。DBMS 可以嵌入 ERP 系统中或者诸如 IBM Netezza Analytics 的分析平台中。
[0009] 在此使用的"拆分标准"(split criterion)可以是与决策树或回归树中的节点相 关的、用于评估输入数据记录的一个或多个属性的属性值的任何类型的程序逻辑。根据评 估结果,所述输入数据记录可以被分配("传递"或"调度")到所述节点的一个或多个子节 点中的一个子节点。拆分标准例如可以实施为针对特定的属性专用阈值运行的比较函数。 根据输入记录的属性值超过或者等于或低于所述阈值,数据记录可以被分配到子节点中的 一个子节点。拆分标准例如可以是平等条件、子集隶属条件、离散属性值的值条件(每个属 性值对应于一个子节点)、不平等条件、间隔划分条件等等。例如,拆分标准可以包括一个或 多个参考值,或者包括与匹配函数相结合的一个或多个不相交的参考值范围。匹配函数可 以将输入数据记录的属性值与属性专用参考值或值范围相比较。每个参考值或值范围可以 代表包括拆分标准的当前节点的子节点中的一个子节点,以及输入数据记录将被再分配给 其参考值或参考值范围与输入数据记录的属性值匹配的一个子节点。可替换的,拆分标准 可以是更复杂的函数,例如,指数或对数函数、支持向量机(SVM)、神经网络、统计函数或任 何其他用于评估一个或多个属性值并返回数据记录将分配到哪个子节点的决策的合适的 函数。
[0010] 在此使用的"并行数据库系统"为DBMS,该DBMS使用至少一些其操作的并行化,特 别的,像从存储器加载数据、创建索引和评估查询的操作。并行DBMS可操作用于将数据和 过程自动分配到多个存储设备和CPU。可以通过并行DBMS基于对性能的考虑来自动管理数 据和过程的分布。并行DBMS例如可以基于多处理器体系结构或混合体系结构。
[0011] 在此使用的"数据切片"是位于例如硬盘驱动器的专用存储单元上的数据容器,由 此按照1:1的关系所述存储单元关联到处理单元。所述关系意味着处理单元仅处理其关 联的存储单元的数据容器中的数据,而不处理位于其他存储单元上的其他数据容器中的数 据。在多处理器环境中,每个处理器可以正好分配了一个存储单元和相应的数据切片。
[0012] 在此使用的"输入数据集"包括多个数据记录。每个数据记录(也称为"输入数 据记录")可以是存储在数据库表中的记录,可以是面向对象编程语言的数据对象或者任何 其他的数据逻辑和功能单元。每个数据记录包括一个或多个分配了相应属性值的属性。数 据记录例如可以代表机器、患者、动物、要制造或销售的商品。属性例如可以是机器状态参 数或诸如温度或湿度的环境参数、为所述患者确定的基因变异或健康参数、商品的价格、颜 色、特征或成分等等。
[0013] 在此使用的"表"可以是数据库表或通用的表格式数据结构,诸如列表对象、数组 对象、矢量对象等等。
[0014] 在一个方面,本发明涉及一种用于对输入数据记录集执行基于集成模型的预测的 计算机实现的方法。集成模型包括多个树,所述多个树可以为决策树或回归树。在控制多 个处理单元和控制多个数据切片的DBMS中实现该方法。DBMS可操作用于通过相应的一个 处理单元处理存储在任意一个数据切片中的数据。该方法包括:
[0015] -为集成模型中的每个树创建分配表;每个分配表将输入数据集中的所有数据记 录分配到所述树中相应的一个树的根节点;
[0016] -将每个分配表拆分成不相交的子表;
[0017] -将每个子表存储到所述数据切片中相应的一个数据切片中;由此,每个数据切 片可以包括来源于不同的分配表的两个或更多个子表;
[0018] -将所有树的根节点用作对应于所有树的当前级的当前节点集。
[0019] 然后,由其相应的数据切片包括一个或多个子表的所有处理单元并行执行以下操 作:
[0020] a)对存储在所述处理单元的数据切片中的子表执行单次遍历,从而识别已经被分 配到所述数据切片的一个或多个数据记录(该数据记录可以被包括在子表中或在子表中 被指示)的一个或多个当前节点;所识别的当前节点可以属于一个或多个树;
[0021] b)针对分配给所述当前节点的数据记录来评估每个识别的当前节点的拆分条件; 执行评估所针对的数据记录可以被包括在存储于所述数据切片中的子表中,或者在存储于 所述数据切片中的子表中被指示;
[0022] c)根据所述评估,将输入数据记录从每个所述当前节点去分配,以及将所述输入 数据记录重新分配到所述当前节点的一个或多个子节点;
[0023] d)将所有当前节点的子节点用作对应于所有树的当前级的当前节点集;以及
[0024] e)重复步骤a)-d),直到将所有分配表的所有输入数据记录分配到树的叶节点。
[0025] 该方法还包括根据数据记录到所有树的叶节点的分配来计算预测结果。
[0026] 所述特征可能是有利的,因为当前节点和数据记录到不同数据切片(和各个处理 单元)的分配以不相交的子表形式的分布允许对树并行处理。和一些现有技术方法中采用 输入数据集副本到不同的处理单元的分布不同,数据记录和树节点的分配函数(子表)被 分布到不同的数据切片和处理单元。这还允许通过并行处理所有树的当前级(当前的森林 级(forest level))内的所有节点来进一步加快多个树的处理。从而,通过对输入数据进 行单次遍历(读取操作,例如顺序扫描),可以处理所有树的当前节点级的所有节点。这降 低了计算所有树的结果所需要的在数据记录上执行的读取操作的总数。
[0027] 根据实施方式,每个分配表仅包括数据记录标识符和关联指针。每个分配表的数 据记录标识符包括输入数据集的所有输入数据记录的标识符,以及每个关联指针指向树中 的一个树的一个或多个当前节点中的一个当前节点。与标识符中的一个标识符关联的每个 指针将所述标识符的数据记录分配到该指针所指的当前节点。分布式子表仅包括标识符和 指针,而不是完整的数据记录的副本,这可以降低数据通信量和避免对输入数据集的冗余 存储和管理。从而,减小了所需存储空间的大小和与并行进行基于树的预测相关的数据通 信量,并加速了预测。
[0028] 根据实施方式,每个不相交的子表包括输入数据记录集的数据记录标识符的不相 交的子集。这可以确保在单次迭代中不会两次访问数据记录标识符,并且可以确保传递的 子表不会包括冗余信息。
[0029] 根据实施方式,DBMS将子表传递到数据切片并将子表存储到所述数据切片中。
[0030] 根据实施方式,经由网络连接来执行子表的传递。从而,可以减少网络通信量,并 且可以大大加速输入数据集向多个处理单元的传播。
[0031] 根据实施方式,该方法还包括:在不同的数据切片中存储从同一个分配表获取的 所有子表。执行步骤C),包括对从所述分配表中的同一个分配表获取的每个所述子表中包 括的数据记录与当前节点的分配进行并行更新。
[0032] 根据实施方式,通过由各个数据切片的处理单元并行评估存储在所述数据切片中 的子表,从而对分配了数据切片中的一个或多个数据记录的一个或多个当前节点进行识 另IJ。这是有利的,因为以分散化的并行方式执行更新,因此可释放一个或多个集中管理的处 理单元的处理能力,所述处理能力可以被DBMS用于其它数据管理任务,诸如处理数据库查 询、创建索引结构等等。
[0033] 根据实施方式,计算预测结果包括:对于每个树,将树专用预测计算为输入数据记 录到所述树的叶节点的分配的衍生;以及根据树专用预测来计算最终预测结果。
[0034] 根据实施方式,集成模型的树包括决策树,并且树的叶节点具有分配的类标记或 类概率分布。计算树专用预测包括将叶节点的类标记或类概率分布被分配到分配给所述叶 节点的所有输入数据记录。计算最终预测结果包括,对于输入数据集的每个数据记录:
[0035] -根据分配表识别所述数据记录被分配到的每个树中的一个叶节点;
[0036] -根据识别的叶节点的所有类标记或所有类概率分布计算预测的类;所述预测的 类是多个预定类中的被预测为包括所述数据记录的概率比其他任意一个预定类高的一个 类;
[0037] -将预测的类的类标记分配给所述输入数据记录;
[0038] 将输入数据集的所有输入数据记录到其各自的所计算的预测的类的类标记的分 配作为最终预测结果返回。
[0039] 例如,计算预测的类可以包括:识别分配给最大数目的所述识别的叶节点的类标 记;和将识别的类标记作为预测的类的标记分配到输入数据集的所述数据记录。
[0040] 根据其他实施方式,集成模型的树包括回归树,以及树的叶节点具有分配的数值 目标属性值。计算树专用预测包括将叶节点的数值目标属性值分配到分配给所述叶节点的 所有输入数据记录。计算最终预测结果包括,对于输入数据集的每个数据记录:
[0041] -根据分配表识别所述数据记录被分配到的每个树中的一个叶节点;
[0042]-根据所有识别的叶节点的数值目标属性值计算衍生属性值;以及 [0043]-将衍生属性值分配给输入数据集的所述数据记录;
[0044] 返回输入数据集的所有输入数据记录到其各自的所计算的衍生属性值的分配作 为最终预测结果。例如,分配到数据记录的衍生属性值可以是根据对所述数据记录识别的 所有叶节点分配的属性值计算的平均值。可替换的,可以通过其中将不同的权重分配给树 并且将权重乘以各个树的叶节点的属性值的加权平均法的方式计算衍生属性值。也可以采 用用于计算衍生属性值的多个其他方法。
[0045] 根据其他实施方式,由处理单元中的没有被分配给任意一个包括子表的数据切片 的一个处理单元根据所有树的叶节点执行对最终预测结果的计算。这可能是有利的,因为 这允许集中管理树和树相关的结果。从而,树不需要分布在不同的处理单元/数据切片上, 而是可以被集中保存和评估,从而降低了在数据库环境中保存树结构的开销。
[0046] 根据其他实施方式,通过数据库管理系统的模块来执行该方法,所述模块是并行 数据库引擎或数据挖掘模块。这可能是有利的,因为这允许对旧的并行DBMS实现根据本发 明的实施方式的先进的基于集成树的预测的并行化,而不需要将所述旧的系统的数据迁移 到新的DBMS版本。
[0047] 根据其他实施方式,针对分配给所述当前节点的数据记录来评估所识别的当前节 点中一个当前节点的拆分条件包括:访问分配表或所述分配表的子表以识别当前被分配给 所述当前节点的输入数据集中的所有数据记录;以及针对每个识别的数据记录的一个或多 个属性值评估拆分条件。
[0048] 例如,当前节点具有两个子节点和基于特定属性阈值的拆分条件。如果评估的输 入数据记录的所述属性的值小于所述阈值,则所述数据记录可以根据所述拆分标准被重新 分配到子节点中的第一个子节点。如果数据记录的属性值等于或大于所述阈值,则数据记 录可以被重新分配给所述子节点中的第二个子节点。根据其他示例,拆分条件可以包括匹 配函数和一个或多个参考值或不相交的参考值范围。如果数据记录的属性值与一个参考值 匹配或落在一个参考范围内,所述数据记录被重新分配给由所述参考值或参考值范围代表 的子节点。优选地,每个参考值或参考值范围对应并代表一个子节点。从而,确保了每个数 据记录被重新分配给子节点中的正好一个子节点以及每个数据记录满足被重新分配给当 前节点的子节点中一个子节点的要求。根据其他进一步的示例,拆分标准可以包括复杂函 数,例如用于在给出了数据记录被分配到的当前节点的拆分条件和给出了要由当前节点的 拆分标准评估的数据记录的属性值的情况下,确定数据记录应该被重新分配到当前节点的 子节点中哪个子节点的指数或对数函数。
[0049] 在又一方面中,本发明涉及一种存储介质,在该存储介质上具有计算机可读程序 代码。当多个处理单元执行所述程序代码时,使处理单元执行根据先前实施方式中任意实 施方式的方法。
[0050] 在又一方面中,本发明涉及包括一种计算机系统,该计算机系统包括多个处理单 元、多个存储单元和DBMS。所述存储单元分别包括数据切片。存储在数据切片中的任意一 个数据切片中的数据选择性地由相应的一个处理单元处理。DBMS控制处理单元并可操作用 于执行对输入数据记录集进行基于集成模型的预测的方法。集成模型包括多个可以是决策 树或回归树的树。DBMS可操作用于执行根据上述实施方式中任意一个实施方式的方法。
[0051] 根据进一步的实施方式,输入数据集集中存储在DBMS管理的数据库中。至少一些 包括相应的一个数据切片的存储单元经由网络连接到数据管理系统。至少一些子表经由所 述网络被传递到数据切片。
[0052] 根据实施方式,集成模型的所述树存储在运行DBMS的计算机系统的主存储器中。 从而,树不会像从用于基于并行树的预测的一些基于网格的方法中所知道的那样,重复和 冗余存储在数据切片中或任意其他形式的并行处理节点中。只有分配表分布于不同的数据 切片和处理单元上。这降低了用于集成模型的树的开销和处理成本,以及因为树不需要被 传递到数据切片上还降低了网络通信量。通过分配给数据切片的处理单元在每次迭代中 连续更新子表中的分配,直到所有数据切片的所有子表中的所有数据记录被分配到了叶节 点。然后,在所述对分配的分散式(de-central)、并行的更新完成以及所有树的所有叶节 点分配了输入数据记录之后,由DBMS读取更新的子表以由集中管理的处理单元计算最终 结果。这降低了网路通信量,因为只在将子表初始传递到数据切片时和用于将包括数据记 录到叶节点的最终分配的子表读取/传递回到DBMS/中央处理单元时需要中央处理单元/ DBMS与数据切片之间的信息交换。
[0053] 本领域的技术人员可以理解,本发明的方面可以以系统、方法或计算机程序产品 的形式体现。因此,本发明的方式可以采用完全硬件的实施方式、完全软件的实施方式(包 括固件、驻留软件、微代码等)或将软件和硬件方面结合的实施方式的形式,这些通常在此 都可以被称为"电路"、"模块"或"系统"。而且,本发明的方面可以采用包括在一个或多个 计算机可读介质中的计算机程序产品的形式,所述计算机可读介质其上包括有计算机可读 程序代码。可以采用一个或多个计算机可读介质的任意结合。计算机可读介质可以为计算 机可读存储介质,该计算机可读存储介质在此也被称为"存储单元"。
[0054] 计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外或半导体系统、设 备或装置,或前述的任意合适的结合。计算机可读存储介质的更具体的示例可以包括(非 穷举)以下:具有一个或多个线路的电连接、便携式计算机磁盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只 读存储器(CD-ROM)、光存储设备、磁存储设备或前述的任意合适的结合。在该文档的上下文 中,计算机可读存储介质可以为可以包括或存储用于或连接到指令执行系统、设备或装置 的程序的任何有形介质。可以使用任意合适的介质(包括但不限于无线、有线、光纤电缆、 RF等或前述的任意合适的结合)传输包括在计算机可读介质上的程序代码。
[0055] 可以以一种或多种编程语言的任意结合来编写用于执行本发明的方面的操作的 计算机程序代码,所述编程语言包括面向对象的编程语言,诸如Java、Smalltalk、C++等 等,还包括常规的过程编程语言,诸如"C"编程语言或类似编程语言。程序代码可以全部在 用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上部分 在远程计算机上、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以 通过任意类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机上,或者可 以(例如,使用互联网服务提供商通过互联网)连接到外部计算机上。
[0056] 下面参考附图中描述的本发明的实施方式描述本发明的方面。可以理解,可以通 过计算机程序指令来实现描绘为服务容器、标准业务流程引擎或其它模块的图中的方框。 可以将这些计算机程序指令提供到通用计算机、专用计算机或其他可编程数据处理设备的 处理器来生成机器,从而经由计算机或其他可编程数据处理设备的处理器执行的指令能建 立用于实现方框中指定的功能/动作的装置。这些计算机程序指令还可以存储在计算机可 读介质中,所述计算机程序指令可以指示计算机、其他可编程数据处理设备或其他装置以 特定的方式运行,从而存储在计算机可读介质中的指令可以生成包括实现图中所述方框中 指定的功能/动作的指令的制品。还可以将计算机程序指令加载到计算机、其他可编程数 据处理设备、或其他设备上,用于引起一系列要在计算机、其他可编程设备或其他设备上执 行的操作步骤,用于生成计算机实现的过程从而使得在计算机或其他可编程设备上执行的 指令提供用于实现所述方框中指定的功能/动作的过程。

【专利附图】

【附图说明】
[0057] 通过结合附图阅读下面更具体的描述,将会更好地理解本发明的上述或其他项 目、特征和优点,在所述附图中:
[0058] 图1示出了具有树的集成模型;
[0059] 图2示出了用于基于集成的预测的现有技术的方法;
[0060] 图3示出了根据本发明实施方式的数据记录到节点的分配的创建和分布;
[0061] 图4是根据本发明的实施方式的计算机系统的框图;以及
[0062] 图5示出了基于并行集成模型的预测的方法。

【具体实施方式】
[0063] 图1示出了本发明实施方式中使用的集成模型100。示出的模型因为空间的原因 包括三个树T1-T3。实际上,集成模型可以包括数千个树。每个树具有根节点NO ti-NOt3,当 使用树来计算预测时所述根节点NOti-NO t3分别用作树的第一当前节点。每个树提供用于同 一个输入数据集IDS的树专用(tree-specific)结果。最后,集成模型的所有树T1-T3提供 的结果被合并成最终合并结果。例如,如果树是决策树且集成模型的大部分树对输入数据 集中的特定数据记录分配了类标记"A"(即,大部分树对所述数据记录投票选择了类"A", 而所述模型中的小部分树对所述数据记录投票选择了类标记"B"),则集成模型将最终把所 述输入数据记录分类为属于类"A"。通过这种方式,输入数据集中的所有数据记录可以被分 类,并且分类的输入数据记录集或者所述类标记到输入数据记录的至少一个分配可以被返 回作为集成模型的合并结果。在图3-5中描述了根据本发明实施方式如何以有效的方式实 现对合并的最终结果的计算。
[0064] 图2示出了根据现有技术的方法(例如,基于网格并行执行基于单个树的预测) 的输入数据集到多个处理单元的分布。模型中存在多少树就将输入数据集IDS复制多少 次,并且数据集副本以及各自的树可以分布到不同的CPU。从而,每个CPU需要保存树并需 要接收和存储输入数据集的副本。
[0065] 图3示出了根据本发明的实施方式预处理、分布和并行处理输入数据。对于集成 树模型的树T1-T3的每个树,创建分配表AT1-AT3。每个分配表包括至少将输入数据集IDS 的每个数据记录分配到一个树的当前处理的节点(当前节点)所需的所有信息。分配表 ATl将输入数据集的所有数据记录分配到树Tl的一个或多个当前节点。分配表AT2将输 入数据集的所有数据记录分配到树T2的一个或多个当前节点,等等。根据一些实施方式, 分配表还可以包括输入数据集的数据记录的副本。然而,更优选地,每个分配表仅包括输入 数据集的所有数据记录的标识符350、352、354的唯一列表和例如指针或链接的一些用于 将所述标识符分配到各个树的当前节点的信息。在这种情况下,分配表的大小比输入数据 集的大小小得多。从而,在分配表包括输入数据集的数据记录的副本的情况下,分配表可以 被认为是输入数据集的副本。如果分配表仅包括分配给一些当前节点的记录标识符,所述 分配表可以被认为是大小减小的"虚拟输入数据集"。对当前节点的分配可以基于节点标识 符356、358和360。在每个分配表中,每个数据记录正好被分配到各自的树的一个当前节点 (1 :1分配)。
[0066] 然后,每个分配表被拆分成多个不相交(disjoint)的子表。例如,分配表ATl被 拆分成子表ΑΧΤΙ. 1-AXT1. 10。分配表AT2被拆分成子表AXT2. 1-AXT2. 10。分配表AT3被 拆分成子表AXT3. 1-AXT3. 10。优选但不是必须的,子表的大小(对应于每个子表中数据记 录的数目或数据记录标识符的数目)相等或基本相等。不同子表的数据记录或数据记录标 识符不相交,以避免对数据记录的任何冗余传输或处理。在准备实际的基于集成模型的预 测时,可以通过并行DBMS的模块自动创建分配表和拆分到不相交的子表。
[0067] 例如图4中所示,从同一分配表获取的子表分布在数据库管理系统管理的不同的 数据切片(data slices)DSLl-DSL10上。每个所述数据切片中存储的数据可以仅由DBMS专 门分配给所述数据切片的处理单元处理,以及可选地还可以由一个或多个集中管理的处理 单元CPU_C处理。处理单元CPU1-CPU10在DBMS的控制下可操作以并行工作。例如,CPUl 可以处理和更新子表AXTL 1、AXT2. 1、AXT3. 1的分配,而并行地CPU2可以处理和更新子表 AXTL 2、AXT2. 2、AXT3. 2的分配。每个数据切片可以包括一个或多个子表。然而,在数据 切片包括多个子表的情况下,需要从不同的分配表获取所述子表,从而所述子表包括到树 T1-T3中的不同的树的分配。每个处理单元CPU1-CPU10及其各自的存储单元和数据切片 DSL1-DSL10可以经由网络连接到DBMS和一个或多个中央处理单元CPU_C,并且可以通过 DBMS的模块经由所述网络执行子表到各自的数据切片的分配。
[0068] 图4示出了包括多个处理单元CPU_C、CPU1-CPU10、数据库管理系统310和主存储 器306的计算机系统300。DBMS 310的模块308可操作用于通过处理单元CPU1-CPU10协 调树T1-T3对输入数据集IDS的并行处理。处理单元CPU1-CPU10如前所述选择性地处理 和更新在其各自分配的数据切片DSL1-DSL10中包括的子表。模块310可以使用一个或多 个进一步的CPU (表示为CPU_C),该CPU不专用于特定的数据切片。更确切地说,所述处理 单元CPU_C可用于集中管理树T1-T3,以用于创建分配表和子表、如图3所示分配子表、和根 据从单个的树T1-T3获得的预测结果计算最终的集成模型结果。
[0069] 树T1-T3构成森林。树T1-T3和树专用结果由模块308在主存储器306中存储和 集中管理。树专用预测结果和/或最终的合并预测结果可以由模块308存储到非易失性存 储介质中。而且,模块308可以集中协调通过处理单元CPU1-CPU10进行的专用预测结果的 并行计算,由此以迭代的方式进行所述并行计算。每个迭代对应于当前森林级(即集成模 型的所有树T1-T3共享的当前处理的层级)的处理。由此,所有所述树的当前节点总体组 成了所述当前森林级。在每次迭代中,正好遍历一次任意一个分配表的所有数据记录或记 录标识符,并关于其各自分配的当前节点的拆分标准来评估所述数据记录或记录标识符, 以用于将所述数据记录重新分配到所述当前节点的一个子节点(child node)。所述子节 点总体组成了下一次迭代的当前节点的总体,从而组成了下一次迭代的当前森林级。例如, 通过参考图1,第一次迭代中的当前节点集由所有树的根节点(Ν0 Τ1、Ν0Τ2、Ν0Τ3)组成。每个 根节点分配了全部输入数据记录,由此在树专用分配表中的子表中包括了分配信息。评估 每个根节点的拆分标准并将数据记录从其各自的根节点去分配(de-assigned),并将数据 记录重新分配到所述根节点的一个子节点。该重新分配取决于数据记录的一个或多个属性 值,所述属性值也可以存储在子表中或者可以从集中管理的输入数据集IDS动态获取。在 第二次迭代中,组成当前森林级的当前节点集由所有树的根节点的子节点(N1 T1、N2T1、N1T2、 N2T2、N1T3、N2T3、N3T3)组成。在第二次迭代中,被分配到所述当前节点中的任意一个当前节 点的所有数据记录关于其各自分配的当前节点的拆分标准被评估,并且被重新分配到所述 当前节点的一个或多个子节点中的一个子节点中。在第三次迭代中,组成当前森林级的当 前节点集由第二次迭代中处理的当前节点的子节点(N3 T1、N3T2、N4T2、N4T3、N5T3、N6 T3、N7T3) 组成,等等。从而,每次迭代时的并行多树处理算法将数据记录从一个当前森林级重新分配 (调度)到下一个当前森林级,直到对于每个树,输入数据集的所有数据记录被分配到所述 树的叶节点(Ieafnode)中的一个。输入数据集的所有数据记录到树的叶节点的树专用分 配可以在计算机系统的王存储器中存储为树专用结果312、314、316。可以使用树专用结果 来计算集成树模型100的最终的合并预测结果。可由并行处理单元CPU1-CPU10执行存储 在子表中的分配信息的更新,并且可以由一个或多个中央处理单元CPU_C来执行树专用结 果的存储和进一步的处理。在图3中对于树Tl和T2这由读取/计算箭头示出,以及由于 空间的原因对于树T3省略了示出。包括特定子表的数据记录被分配到哪个树的哪个当前 节点的信息的子表AXTL 1……AXT3. 10存储在单个的数据切片中,并在每次迭代中由所述 数据切片的专用处理单元CPU1-CPU10连续更新。
[0070] 下面一种实现变形例的伪代码将会说明对预测结果的并行的、逐个森林级 (forest-level-wise)的计算。
[0071] 定义:
[0072] X:输入数据记录
[0073] η:节点
[0074] Ii1:叶节点
[0075] Q:当前森林级的(未处理的)当前节点集(包括来自集成模型中的每个树的一个 或多个当前节点)
[0076] Q':下一次迭代中要处理的森林级的(未处理的)当前节点集(包括来自集成模 型中的每个树的一个或多个节点)
[0077] neur,t::树t的当前节点
[0078] 通过在具有分布式数据的森林上进行迭代的多个树预测
[0079]

【权利要求】
1. 一种用于对输入数据记录集(ID巧执行基于集成模型(100)的预测的计算机实现的 方法,所述集成模型包括多个树(T1-T3),所述树为决策树或回归树,该方法在控制多个处 理单元(CPU1-CPU10)和多个数据切片值化1-D化10)的数据库管理系统中实现,所述数据 库管理系统可操作用于通过相应的一个处理单元处理存储在任意一个数据切片中的数据, 该方法包括: -为所述集成模型中的树(T1-T3)中的每个树创建(502)分配表(AT1-AT3),每个分配 表将输入数据集中的所有数据记录分配到所述树的根节点(N〇ti,N〇t2,N〇t3); -将每个分配表拆分(504)成不相交的子表(AXT1. 1-AXT1. 10 ;AXT2. 1-AXT2. 10 ; AXT3. 1-AXT3. 10); -将每个子表存储(506)到相应的一个数据切片中; -将所有树的根节点(N〇ti,N〇t2,N〇t3)用作(510)对应于所有树的当前级的当前节点 集; -由其各自的数据切片包括一个或多个子表的所有处理单元并行执行巧12): a) 对存储在所述处理单元的数据切片中的子表执行巧14)单次遍历,从而识别已经被 分配到所述数据切片的一个或多个数据记录的一个或多个所述当前节点; b) 针对分配给每个识别的当前节点的数据记录来评估巧16)每个识别的当前节点的 拆分条件; C)根据所述评估,将输入数据记录从每个所述当前节点去分配巧18) W及将所述输入 数据记录重新分配到所述当前节点的一个或多个子节点; d) 将所有当前节点的子节点用作巧20)对应于所有树的当前级的当前节点集;W及 e) 重复步骤a)-d),直到将所有分配表的所有输入数据记录分配到所述树的叶节点; -根据数据记录到所有树的叶节点的分配来计算巧24)预测结果。
2. 根据权利要求1所述的计算机实现的方法,其中每个分配表仅包括数据记录标识符 和关联指针,其中每个分配表的数据记录标识符包括所述输入数据集(ID巧的所有输入数 据记录的标识符,W及每个关联指针指向树中的一个树的一个或多个当前节点中的一个当 前节点,其中与所述标识符中的一个标识符关联的每个指针将所述标识符的数据记录分配 到该指针所指的当前节点。
3. 根据前述任一项权利要求所述的计算机实现的方法,其中每个不相交的子表包括输 入数据记录集(IDS)的数据记录标识符的不相交的子集。
4. 根据前述任一项权利要求所述的计算机实现的方法,该方法还包括由数据库管理系 统将子表传递到数据切片并将子表存储到所述数据切片中。
5. 根据权利要求4所述的计算机实现的方法,其中所述传递经由网络连接来执行。
6. 根据前述任一项权利要求所述的计算机实现的方法,该方法还包括;在数据 切片中的不同数据切片中存储从同一个分配表获取的所有子表(AXT1. 1-AXT1. 10; AXT2. 1-AXT2. 10),其中执行步骤C)包括对从同一个分配表获取的每个子表中包括的数据 记录与当前节点的分配进行并行更新。
7. 根据前述任一项权利要求所述的计算机实现的方法,其中通过由各个数据切片的处 理单元并行评估存储在所述数据切片中的子表(AXT1. 1-AXT3. 10),从而对分配了数据切片 中的一个或多个数据记录的一个或多个当前节点进行识别。
8. 根据前述任一项权利要求所述的计算机实现的方法,其中计算所述预测结果包括: -对于每个树,将树专用预测计算为输入数据记录到所述树的叶节点的分配的衍生; W及 -根据树专用预测来计算最终预测结果。
9. 根据权利要求8所述的计算机实现的方法,其中所述树的叶节点具有分配的类标记 或类概率分布,其中所述树为决策树,其中计算所述树专用预测包括: -将叶节点的类标记分配到被分配给所述叶节点的所有输入数据记录; 其中计算所述最终预测结果包括,对于输入数据集(ID巧的每个数据记录: -根据所述分配表识别所述数据记录被分配到的每个树中的一个叶节点; -根据识别的叶节点的所有类标记或所有类概率分布来计算预测的类,所述预测的类 是多个预定类中的一个,所述预测的类被计算为包括所述数据记录的概率比其他任意一个 预定类高; -将预测的类的类标记分配给所述输入数据记录; 其中将所述输入数据集的所有输入数据记录到其各自计算的类标记的分配返回作为 最终预测结果。
10. 根据权利要求8所述的计算机实现的方法,其中所述树的叶节点具有分配的数值 目标属性值,其中所述树为回归树,其中计算所述树专用预测包括: -将所述叶节点的数值目标属性值分配到分配给所述叶节点的所有输入数据记录; 其中计算最终预测结果包括,对于所述输入数据集(ID巧的每个数据记录: -根据分配表识别所述数据记录被分配到的每个树中的一个叶节点; -根据所有识别的叶节点的数值目标属性值计算衍生属性值; -将所述衍生属性值分配给所述输入数据集的所述数据记录; 其中将所述输入数据集的所有输入数据记录到其各自计算的衍生属性值的分配返回 作为最终预测结果。
11. 根据前述任一项权利要求所述的计算机实现的方法,其中该方法由数据库管理系 统的模块执行,所述模块为并行数据库引擎或数据挖掘模块。
12. 根据前述任一项权利要求所述的计算机实现的方法,其中针对分配给所识别的当 前节点的数据记录来评估所识别的当前节点中的一个当前节点的拆分条件包括: -访问所述分配表或所述分配表的子表W识别当前被分配给所述当前节点的所述输入 数据集(IDS)中的所有数据记录;W及 -针对每个识别的数据记录的一个或多个属性值来评估拆分条件。
13. -种存储介质,在该存储介质上具有计算机可读程序代码,当多个处理单元 (CPU1-CPU10)执行所述程序代码时,使所述处理单元执行根据前述任一项权利要求所述的 方法。
14. 一种计算机系统(300),包括: -多个处理单元(CPU1-CPU10); -多个存储单元,分别包括数据切片值化1-D化10),其中存储在所述数据切片中的任 意一个数据切片中的数据选择性地由处理单元中相应的一个处理单元处理; 数据库管理系统(310),控制所述处理单元,所述数据库管理系统可操作用于执行对 输入数据记录集(ID巧进行基于集成模型(100)的预测的方法,所述集成模型包括多个树 (TI-T3),所述树是决策树或回归树,该方法包括: -为所述集成模型中的树(T1-T3)中的每个树创建(502)分配表(AT1-AT3),每个分配 表将输入数据集中的所有数据记录分配到所述树的根节点(N〇ti,N〇t2,N〇t3); -将每个分配表拆分(504)成不相交的子表(AXT1. 1-AXT1. 10 ;AXT2. 1-AXT2. 10 ; AXT3. 1-AXT3. 10); -将每个子表存储(506)到相应的一个数据切片中; -将所有树的根节点(N〇ti,N〇t2,N〇t3)用作(510)对应于所有树的当前级的当前节点 集; -由其各自的数据切片包括一个或多个子表的所有处理单元并行执行巧12): a) 对存储在所述处理单元的数据切片中的子表执行巧14)单次遍历,从而识别已经被 分配到所述数据切片的一个或多个数据记录的一个或多个所述当前节点; b) 针对分配给每个识别的当前节点的数据记录来评估巧16)每个识别的当前节点的 拆分条件; C)根据所述评估,将输入数据记录从每个所述当前节点去分配巧18) W及将所述输入 数据记录重新分配到所述当前节点的一个或多个子节点; d) 将所有当前节点的子节点用作(520)对应于所有树的当前级的当前节点集;W及 e) 重复步骤a)-d),直到将所有分配表的所有输入数据记录分配到所述树的叶节点; -根据数据记录到所有树的叶节点的分配来计算巧24)预测结果。
15.根据权利要求14所述的计算机系统,其中所述输入数据集被集中存储在由所述数 据库管理系统管理的数据库中,其中包括相应的一个数据切片的至少一些存储单元经由网 络连接到所述数据库管理系统,W及其中至少一些子表经由所述网络被传输到所述数据切 片。
【文档编号】G06F3/041GK104345974SQ201410359973
【公开日】2015年2月11日 申请日期:2014年7月25日 优先权日:2013年7月25日
【发明者】P·塞考兹, M·科罗泊泰克, K·思考罗恩思基 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1