一种数据挖掘系统中决策树的生成方法及装置的制作方法

文档序号:6584556阅读:173来源:国知局
专利名称:一种数据挖掘系统中决策树的生成方法及装置的制作方法
技术领域
本发明涉及数据挖掘技术领域,尤其涉及一种数据挖掘系统中决策树的生成方法及装置。
背景技术
数据挖掘又称数据库中的知识发现,是指从大量的不完全的、有噪声的、模糊的数 据中提取隐含的、未知的、非平凡的及有潜在应用价值的信息或模式,融合了数据库、人工 智能、机器学习、统计学等多个领域的理论和技术。数据挖掘工具能够对将来的趋势和行为 进行预测,从而很好地支持人们的决策。数据挖掘的一个重要功能是数据分类,数据分类是指将数据映射到预先定义好的 群组或类,目前常用的分类方法为基于决策树的方法,用决策树进行分类,生成规则易于理 解并且高效,由于树的规模独立于数据库规模,所以决策树对于大规模数据库具有很好的 扩展性。决策树是以实例为基础的归纳学习算法,它从一组无次序、无规则的元组中推理出 决策树表示形式的分类规则,采用自顶向下的递归方式,在决策树的内部节点进行属性值 的比较,并根据不同的属性值从该节点向下分支,叶节点是要学习划分的类。决策树中叶子 节点代表实例样本所属的分类类别。树上的每一个非叶子节点指定了对实例的某个决策属 性的测试,并且该节点的每一个后继分支对应于该决策属性的一个可能值,从根到叶节点 的一条路径就对应着一条合取规则,整个决策数就对应着一组析取表达式规则。用决策树进行分类主要包括两个步骤第一步是利用训练集生成一棵决策树,建 立决策树模型,这个过程实际上是一个从数据中获取知识,进行机器学习的过程;第二步是 利用生成的决策树对输入数据进行分类,对输入的纪录,从根节点依次测试记录的属性值, 直到到达某个叶子节点,从而找到该记录所在的类。基本的决策树生成方法是通过自顶向 下增长节点实现的,其核心是为每个节点选取能最佳分类当前数据集的属性,成为该节点 的决策属性。常用的ID3和C4. 5等决策树生成算法,都以每个候选属性的信息增益值来衡 量其分类能力,决策树上每个节点选择候选属性中具有最高信息增益值的属性为最佳分类 属性,成为该节点的决策属性。需要指出的是,为得到特定候选属性的信息增益值,需要统 计待分类数据集中该属性每个属性值对应不同分类类别的频度,进而计算该属性的信息熵 以及信息增益值。这是决策树生成过程中最主要的计算阶段。如图1所示,现有决策树生成方法的基本流程为步骤101、重复遍历全部数据集,依次计算每个候选属性的信息增益值。如图所示,该步骤中,首先通过遍历全部数据集计算第1个候选属性的信息增益 值,然后通过遍历全部数据集计算第2个候选属性的信息增益值,依此类推,最后通过遍历 全部数据集计算最后一个候选属性的信息增益值。步骤102、选择具有最大信息增益值的候选属性为全部数据集对应的决策属性,成 为决策树根节点。步骤103、依次为根节点决策属性的每个属性值产生一个分支,并得到决策属性各属性值对应的未分类数据子集,按照递归方式建立各属性值对应的分支的决策子树。如图所示,该步骤中,首先得到决策属性第1个属性值对应的未分类数据子集并 按照递归方式建立第1个属性值对应的分支的决策子树,然后得到决策属性第2个属性值 对应的未分类数据子集并按照递归方式建立第2个属性值对应的分支的决策子树,依此类 推,最后得到决策属性最后1个属性值对应的未分类数据子集并按照递归方式建立最后1 个属性值对应的分支的决策子树。其中,步骤101中,计算一个候选属性的信息增益值的过程如图2所示,包括步 骤步骤201、重复遍历全部数据集,依次确定当前候选属性各属性值对应不同分类类 别的频度;如图所示,该步骤中,首先通过遍历全部数据集确定当前候选属性第1个属性值 对应不同分类类别的频度,然后通过遍历全部数据集确定当前候选属性第2个属性值对应 不同分类类别的频度,依此类推,最后通过遍历全部数据集确定当前候选属性最后1个属 性值对应不同分类类别的频度。步骤202、合并该候选属性各属性值对应的频度,计算该候选属性的信息
步骤203、根据该候选属性的信息熵计算该候选属性的信息增益值。以上决策树生成方法中,在为根节点选择决策属性时,需要多次重复遍历全部数 据集,当数据集为海量数据时,执行效率低,且易造成存储资源占用严重,系统性能降低;并 且,计算多个候选属性的信息增益值时,采用依次顺序求解的串行方式,计算效率低,且无 法充分利用系统的计算资源。针对以上问题,现有技术提出了一种决策树生成的MapReduce局部并行化方案, 该方案对决策树生成基本方法中计算单个候选属性的信息增益值的过程(上述步骤201 步骤20 进行了改进,通过将数据分块存储,并利用MapReduce分块并行方式执行各候选 属性的信息增益值的计算过程,提高了计算效率。如图3所示,具体包括如下步骤步骤301、将数据分布存储到多个PC机器组成的分布式集群环境中;步骤302、遍历全部数据集,分块并行计算当前候选属性每个属性值分别对应不同 分类类别的频度;步骤303、分块合并该候选属性各属性值对应的频度,计算该候选属性的信息熵;步骤304、根据该候选属性的信息熵计算该候选属性的信息增益值。通过上述方案,解决了在确定候选属性信息增益值时需要多次重复遍历全部数据 集而导致计算效率低的问题,但仍然存在如下问题1、各个候选属性间信息增益值的确定过程仍是顺次串行执行,每计算一个候选属 性的信息增益值仍然需要遍历一次数据全集,计算效率低,并且占用存储资源多;2、决策属性值对应的分支下决策子树的构建,仍是采用深度优先的递归方式,执 行效率低,资源占用多,并且需要系统提供大量内存资源记录递归环境。综上所述,现有基于决策树的数据分类方案中,由于决策树生成过程中各个候选 属性间信息增益值的确定过程顺次串行执行,并且决策属性值对应的分支下决策子树的构 建采用深度优先的递归策略,导致计算效率低,并且占用系统资源多。

发明内容
有鉴于此,本发明实施例提供一种数据挖掘系统中决策树的生成方法及装置,用 于解决现有技术生成决策树的过程计算效率低以及占用系统资源多的问题。本发明实施例通过如下技术方案实现根据本发明实施例的一个方面,提供了一种数据挖掘系统中决策树的生成方法。根据本发明实施例提供的数据挖掘系统中决策树的生成方法,包括A、遍历设定数据集合,确定决策树当前层每个候选节点分别对应的未分类数据 集;B、根据所述每个候选节点分别对应的未分类数据集的未分类数据属性,确定所述 每个候选节点分别对应的数据属性的属性值;C、根据所述每个候选节点分别对应的属性值,分别生成所述每个节点的决策树分 支;D、分别判断每个所述决策树分支下的节点对应的未分类数据集中的数据是否为 预先确定的设定数据属性的同一属性值,将判断结果为否的决策树分支下的节点确定为当 前层的下一层的候选节点,并将所述下一层作为当前层返回步骤A,将判断结果为是的决策 树分支下的节点分别确定为其所在分支的最后一个节点。根据本发明实施例的另一个方面,还提供了一种数据挖掘系统中决策树的生成装置。根据本发明实施例提供的数据挖掘系统中决策树的生成装置,包括未分类数据集确定单元,用于遍历设定数据集合,确定决策树当前层每个候选节 点分别对应的未分类数据集;属性值确定单元,用于根据所述未分类数据集确定单元确定的每个候选节点分别 对应的未分类数据集的未分类数据属性,确定所述每个候选节点分别对应的数据属性的属 性值;决策树分支确定单元,用于根据所述属性值确定单元确定的每个候选节点分别对 应的属性值,分别生成所述每个节点的决策树分支;判断单元,用于分别判断所述决策树分支确定单元确定的每个所述决策树分支下 的节点对应的未分类数据集中的数据是否为预先确定的设定数据属性的同一属性值,将判 断结果为否的决策树分支下的节点确定为当前层的下一层的候选节点,并将所述下一层确 定为当前层控制所述未分类数据集确定单元执行决策树当前层每个候选节点分别对应的 未分类数据集的操作,将判断结果为是的决策树分支下的节点分别确定为其所在分支的最 后一个节点。通过本发明实施例提供的上述至少一个技术方案,遍历设定数据集合,确定决策 树当前层每个候选节点分别对应的未分类数据集,根据所述每个候选节点分别对应的未分 类数据集的未分类数据属性,并行确定所述每个候选节点分别对应的数据属性的属性值, 根据所述每个候选节点分别对应的属性值,分别生成所述每个节点的决策树分支,分别判 断每个所述决策树分支下的节点对应的未分类数据集中的数据是否为预先确定的设定数 据属性的同一属性值,将判断结果为否的决策树分支下的节点确定为当前层的下一层的候 选节点,将判断结果为是的决策树分支下的节点分别确定为其所在分支的最后一个节点。通过该技术方案,决策树的生成过程从根节点开始一层一层向下生成,即遍历一次数据集 合,能够并行确定决策树处于同一层的所有候选节点的数据属性,与现有技术采用的深度 优先的递归方式相比,减少了遍历数据集合的次数,从而提高了计算效率,减少了对系统资 源的占用。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施 例一起用于解释本发明,并不构成对本发明的限制。在附图中图1为本发明背景技术中决策树生成方法的基本流程图;图2为本发明背景技术中计算一个候选属性的信息增益值的流程图;图3为本发明背景技术中计算一个候选属性的信息增益值的改进流程图;图4为本发明实施例中数据挖掘系统中决策树的生成方法流程图一;图5为本发明实施例中数据挖掘系统中决策树的生成方法流程图二 ;图6为本发明实施例中分布式集群系统中各PC机节点间的存储和计算关系示意 图;图7为本发明实施例中决策树示意图;图8为本发明实施例中数据挖掘系统中决策树的生成装置示意图。
具体实施例方式为了给出提高数据分类效率以及提高系统性能的实现方案,本发明实施例提供了 一种数据挖掘系统中决策树的生成方法及装置,以下结合说明书附图对本发明的优选实施 例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定 本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。根据本发明实施例,首先提供了一种数据挖掘系统中决策树的生成方法,如图4 所示,包括步骤401、遍历设定数据集合,确定决策树当前层每个候选节点(也可称为待分裂 节点)分别对应的未分类数据集;步骤402、根据每个候选节点分别对应的未分类数据集的未分类数据属性(也可 称为未分类候选属性),确定每个候选节点分别对应的数据属性;步骤403、确定每个候选节点分别对应的数据属性的属性值,并根据每个候选节点 分别对应的数据属性的属性值,分别生成每个节点的决策树分支;步骤404、分别判断每个决策树分支下的节点对应的未分类数据集是否对应预先 确定的设定数据属性(也可称为分类属性)的同一属性值,将判断结果为否的决策树分支 下的节点确定为当前层的下一层的候选节点,并将下一层作为当前层返回步骤A,若是,则 执行步骤405 ;步骤405、将判断结果为是的决策树分支下的节点分别确定为其所在分支的最后 一个节点。
其中,上述步骤401中,若当前层为决策树的第一层(即决策树根节点),则当前层 包括一个候选节点,并且该候选节点对应的未分类数据集为设定数据集合中的全部数据; 若当前层为决策树第一层与最后一层之间的层,则当前层包括至少一个候选节点并且各候 选节点对应的未分类数据集为该设定数据集合中符合各候选节点所在分支对应属性值的 数据集合,例如,当前层为第二层,有2个候选节点,分别对应第一层根节点对应属性的属 性值A以及属性值B,则这2个候选节点对应的未分类数据集分别为设定数据集合中满足属 性值A的数据集合以及满足属性值B的数据集合。本发明实施例生成的决策树一般都应用于数据分类,基于此需求,会预先确定要 得到的分类类别的数据属性以及属性值,即归属于同一类别的数据对应同一数据属性的属 性值,根据本发明实施例,上述步骤404中,预先确定的设定数据属性即为该设定数据集合 对应的数据属性中的一种。相应地,若步骤401中的当前层为决策树的第一层根节点,则为该根节点确定数 据属性时所对应的未分类数据属性为选定的设定数据集合对应的数据属性中除该设定数 据属性以外的数据属性;若步骤401中的当前层为决策树第一层与最后一层之间的层,则 为该层各候选节点确定数据属性时对应的未分类数据属性为选定的设定数据集合对应的 数据属性中除该设定数据属性以及该候选节点所在分支各节点分别对应的数据属性以外 的数据属性,例如,当前层为决策树的第三层,选定的设定数据集合包括A、B、C、D、E五种数 据属性,其中,选定的最终得到的分类类别对应的数据属性为A属性,该层中的一个候选节 点所在分支各节点(即第一层根节点以及第二层节点)对应的数据属性分别为B、E属性, 则该候选节点对应的未分类数据属性包括C属性和D属性。上述步骤402中,可以采用串行或并行方式确定每个候选节点分别对应的数据属 性的属性值,较佳地,为了提高处理速度,以并行的方式确定决策树中同一层每个候选节点 分别对应的数据属性,其中,根据候选节点对应的未分类数据集的一个未分类数据属性确 定该候选节点对应的数据属性的具体过程如下以并行方式确定该候选节点对应的未分类数据集的各未分类数据属性的信息增 益值;并确定具有最大信息增益值的数据属性为该候选节点对应的数据属性。其中,确定候选节点对应的未分类数据集的一个未分类数据属性的信息增益值的 过程包括以并行方式计算未分类数据属性的各属性值对应设定类别的频度;并根据计算得 到的频度,确定该未分类数据属性对应的信息熵,并根据该信息熵确定该未分类数据属性 的信息增益值。实际应用中,一般数据挖掘都面临海量数据,根据本发明实施例,首先将数据分布 存储到多个PC机器组成的分块分布环境中,有多个PC分块扫描数据生成对应的决策树,其 中,每个PC中执行的过程如图5所示,包括如下步骤步骤501、分块并行计算根节点对应的未分类数据属性的每个属性值对应设定分 类类别的频度;步骤502、分块并行合并具有相同候选属性的不同属性值的频度统计项,分块并行 汇总计算各分类数据属性的信息熵,并根据各未分类数据属性的信息熵计算各未分类数据 属性的信息增益值;
步骤503、将所有未分类数据属性的信息增益值按从大到小的顺序排列,选择具有 最大信息增益值的未分类数据属性作为决策树根节点对应的数据属性;步骤504、根据根节点对应的数据属性的属性值生成决策树的下层分支;步骤505、确定下层分支节点对应的未分类数据集对应预先确定的设定数据属性 同一属性值的节点为该分支的组后一个叶节点,并确定下层分支节点对应的未分类数据集 对应预先确定的设定数据属性不同属性值的节点为第二层候选节点;重复步骤502 步骤505依次确定决策树第二层 最后一层各候选节点对应的 数据属性,直到各分支下节点对应的未分类数据集对应预先确定的设定数据属性同一属性 值,完成决策树的构建过程。对应上述决策树生成过程,分布式集群系统中各PC机节点间的存储和计算关系 如图6所示,其中在步骤601中,总控节点负责将海量数据分割为块,并分布式存储于各PC节点。各PC节点对各分块数据子集并行执行计算,确定同一层内各分支子树对应节点 的数据属性,按照计算任务的不同分为Map计算节点和Reduce计算节点。其中在步骤602中,对应上述流程的步骤501,每个Map计算节点,按照总控节点的指 派,负责遍历1个分块数据子集中每行记录,并为每行记录映射产生一个形式为< 分支编 号,未分类数据属性名,属性值,类别标记,1>的单位向量,然后对这些单位向量进行局部汇 总,输出形式为〈分支编号,未分类数据属性名,属性值,类别标记,频度〉的频度统计向 量,即该分块数据子集中所有未分类数据属性的每个属性值对应的频度统计项。在步骤603中,对应上述流程中的步骤502,每个reduce计算节点,收集所有Map 计算节点产生的频度统计向量,汇总具有相同〈分支编号、未分类数据属性名 > 的频度统计 向量子集,进而计算特定分支下特定未分类数据属性名对应的信息熵和信息增益值,输出< 分支编号、未分类数据属性名、信息增益值〉的向量;在步骤604中,对应上述流程中的步骤503,每个reduce计算节点,对所有 < 分支 编号、未分类数据属性名、信息增益值〉向量收集,并计算具有相同〈分支编号〉的向量子 集,按照信息增益值排序,并返回最大信息增益值对应的未分类数据属性名 < 分支编号、数 据属性名 >,即成为该分支下节点对应的数据属性。为了更好地理解本发明实施例提供的决策树的生成方法,以下结合具体实例进一 步对本发明实施例提供的决策树生成过程进行说明确定的数据集如下表所示
权利要求
1.一种数据挖掘系统中决策树的生成方法,其特征在于,包括A、遍历设定数据集合,确定决策树当前层每个候选节点分别对应的未分类数据集;B、根据所述每个候选节点分别对应的未分类数据集的未分类数据属性,确定所述每个 候选节点分别对应的数据属性的属性值;C、根据所述每个候选节点分别对应的属性值,分别生成所述每个节点的决策树分支;D、分别判断每个所述决策树分支下的节点对应的未分类数据集中的数据是否为预先 确定的设定数据属性的同一属性值,将判断结果为否的决策树分支下的节点确定为当前层 的下一层的候选节点,并将所述下一层作为当前层返回步骤A,将判断结果为是的决策树分 支下的节点分别确定为其所在分支的最后一个节点。
2.如权利要求1所述的方法,其特征在于,若当前层为所述决策树的第一层,则当前层 包括一个候选节点并且所述候选节点对应的未分类数据集为所述设定数据集合;若当前层为所述决策树第一层与最后一层之间的层,则当前层包括至少一个候选节点 并且所述候选节点对应的未分类数据集为所述设定数据集合中符合所述候选节点所在分 支对应属性值的数据集合。
3.如权利要求1所述的方法,其特征在于,所述预先确定的设定数据属性为所述数据 集合对应的数据属性中的一种。
4.如权利要求3所述的方法,其特征在于,若当前层为所述决策树的第一层,则所述未 分类数据属性为所述数据集合对应的数据属性中除所述设定数据属性以外的数据属性;若当前层为所述决策树第一层与最后一层之间的层,则所述未分类数据属性为所述数 据集合对应的数据属性中除所述设定数据属性以及所述候选节点所在分支各节点分别对 应的数据属性以外的数据属性。
5.如权利要求1所述的方法,其特征在于,所述根据所述每个候选节点分别对应的未 分类数据集的未分类数据属性,确定所述每个候选节点分别对应的数据属性的属性值,包 括根据所述每个候选节点分别对应的未分类数据集的未分类数据属性,以并行方式确定 所述每个候选节点分别对应的数据属性;以及,确定所述每个候选节点分别对应的数据属性的属性值。
6.如权利要求5所述的方法,其特征在于,确定一个候选节点对应的数据属性,包括以并行方式确定所述候选节点对应的未分类数据集的各未分类数据属性的信息增益值;确定具有最大信息增益值的数据属性为所述候选节点对应的数据属性。
7.如权利要求6所述的方法,其特征在于,确定所述候选节点对应的未分类数据集的 一个未分类数据属性的信息增益值,包括以并行方式计算所述未分类数据属性的各属性值对应设定类别的频度;根据计算得到的所述频度,确定所述未分类数据属性对应的信息熵,并根据所述信息 熵确定所述未分类数据属性的信息增益值。
8.一种数据挖掘系统中决策树的生成装置,其特征在于,包括未分类数据集确定单元,用于遍历设定数据集合,确定决策树当前层每个候选节点分 别对应的未分类数据集;属性值确定单元,用于根据所述未分类数据集确定单元确定的每个候选节点分别对 应的未分类数据集的未分类数据属性,确定所述每个候选节点分别对应的数据属性的属性 值;决策树分支确定单元,用于根据所述属性值确定单元确定的每个候选节点分别对应的 属性值,分别生成所述每个节点的决策树分支;判断单元,用于分别判断所述决策树分支确定单元确定的每个所述决策树分支下的节 点对应的未分类数据集中的数据是否为预先确定的设定数据属性的同一属性值,将判断结 果为否的决策树分支下的节点确定为当前层的下一层的候选节点,并将所述下一层确定为 当前层控制所述未分类数据集确定单元执行决策树当前层每个候选节点分别对应的未分 类数据集的操作,将判断结果为是的决策树分支下的节点分别确定为其所在分支的最后一 个节点。
9.如权利要求8所述的装置,其特征在于,所述属性值确定单元包括属性确定模块,用于根据所述每个候选节点分别对应的未分类数据集的未分类数据属 性,以并行方式确定所述每个候选节点分别对应的数据属性;属性值确定模块,用于确定所述每个候选节点分别对应的数据属性的属性值。
10.如权利要求9所述的装置,其特征在于,所述属性确定模块在确定一个候选节点对 应的数据属性时,具体用于以并行方式确定所述候选节点对应的未分类数据集的各未分类数据属性的信息增益 值,并确定具有最大信息增益值的数据属性为所述候选节点对应的数据属性。
11.如权利要求10所述的装置,其特征在于,所述属性确定模块在确定所述候选节点 对应的未分类数据集的一个未分类数据属性的信息增益值时,具体用于以并行方式计算所述未分类数据属性的各属性值对应设定类别的频度,并根据计算得 到的所述频度,确定所述未分类数据属性对应的信息熵,并根据所述信息熵确定所述未分 类数据属性的信息增益值。
全文摘要
本发明公开了一种数据挖掘系统中决策树的生成方法及装置,主要技术方案包括A、遍历设定数据集合,确定决策树当前层每个候选节点分别对应的未分类数据集;B、根据确定的未分类数据属性,确定每个候选节点分别对应的数据属性的属性值;C、根据确定的属性值,分别生成每个节点的决策树分支;D、分别判断每个决策树分支下节点对应的未分类数据集中的数据是否为预先确定的设定数据属性的同一属性值,将判断结果为否的节点确定为当前层的下一层的候选节点,并将下一层作为当前层返回步骤A,将判断结果为是的节点分别确定为其所在分支的最后一个节点。根据该技术方案,减少了遍历数据集合的次数,从而提高了计算效率,减少了对系统资源的占用。
文档编号G06F17/30GK102054002SQ20091023674
公开日2011年5月11日 申请日期2009年10月28日 优先权日2009年10月28日
发明者周文辉, 孙少陵, 徐萌, 段云峰, 罗治国, 肖建明, 邓超, 高丹 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1