CN102214213B - 一种采用决策树的数据分类方法和系统 - Google Patents
一种采用决策树的数据分类方法和系统 Download PDFInfo
- Publication number
- CN102214213B CN102214213B CN 201110143821 CN201110143821A CN102214213B CN 102214213 B CN102214213 B CN 102214213B CN 201110143821 CN201110143821 CN 201110143821 CN 201110143821 A CN201110143821 A CN 201110143821A CN 102214213 B CN102214213 B CN 102214213B
- Authority
- CN
- China
- Prior art keywords
- decision tree
- attribute
- data
- decision
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种采用决策树的数据分类方法和系统。所述方法,包括下列步骤:基于MapReduce机制,并行计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性作为节点构造决策树;根据所述决策树,对输入的数据记录进行分类。其实现了基于MapReduce的并行决策树ID3算法,不仅可以处理大规模数据集,而且并行效率高,即实现构建决策树中节点内部以及同一层节点之间的并行计算。
Description
技术领域
本发明涉及数据挖掘技术领域,特别是涉及一种采用决策树的数据分类方法和系统。
背景技术
分类是数据挖掘中的一个重要课题。分类的目的是学会一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别中的某一个。分类可用于提取描述重要数据类的模型或预测未来的数据趋势。分类的目的是分析输入数据,通过在训练集中的数据表现出来的特性,为每一个类找到一种准确的描述或者模型。这种描述常常用谓词表示。由此生成的类描述用来对未来的测试数据进行分类。尽管这些未来的测试数据的类标签是未知的,我们仍可以由此预测这些新数据所属的类。注意是预测,而不能肯定。
分类技术有很多,如决策树、贝叶斯网络、神经网络、遗传算法、关联规则等。其中,决策树技术是用于分类和预测的主要技术,决策树学习是以实例为基础的归纳学习算法。它着眼于从一组无次序、无规则的事例中推理除决策树表示形式的分类规则。它采用自顶向下的递归方式,在决策树的内部节点进行属性值的比较并根据不同属性判断从该节点向下的分支,然后进行剪枝,最后在决策树的叶节点得到结论。所以从根到叶节点就对应着一条合取规则,整棵树就对应着一组析取表达式规则。
决策树(Decision Tree)又称为判定树,是运用于分类的一种树结构。其中的每个内部结点代表对某个属性的一次测试,每条边代表一个测试结果,叶结点代表某个类或者类的分布,最上面的结点是根结点。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。1986年Quinlan提出了著名的ID3算法[Quinlan,1986]。在ID3算法的基础上,1993年Quinlan又提出了C4.5算法[Quinlan,1993]。为了适应处理大规模数据集的需要,后来又提出了若干改进的算法,其中SLIQ(supervisedlearning in quest)和SPRINT(scalable parallelizable induction ofdecision trees)是比较有代表性的两个算法。
构造决策树是采用自上而下的递归构造方法。决策树构造的结果是一棵二叉或多叉树,它的输入是一组带有类别标记的训练数据。二叉树的内部结点(非叶结点)一般表示为一个逻辑判断,如形式为a=b的逻辑判断,其中a是属性,b是该属性的某个属性值;树的边是逻辑判断的分支结果。多叉树(ID3)的内部结点是属性,边是该属性的所有取值,有几个属性值,就有几条边。树的叶结点都是类别标记。
使用决策树进行分类,首先利用训练集建立并精化一棵决策树,建立决策树模型。这个过程实际上是一个从数据中获取知识,进行机器学习的过程。然后利用生成完毕的决策树对输入数据进行分类。对输入的记录,从根结点依次测试记录的属性值,直到到达某个叶结点,从而找到该记录所在的类。
构造决策树最大的运算代价在于计算选择最佳分裂属性,因为选择分裂的时候,对每个字段都考虑;对每个字段中的值先排序,然后再一一计算,最后选出最佳的分裂属性。常见的衡量准则有信息熵和GiniIndex等方法。决策树算法内部的并行性,实际上跟数据本身的存储有很大的关系,如果数据纵向划分存储,即每个节点只存储数据的部分属性,那么这种存储方式具有较好的并行性;而如果数据横向存储,分布在各个数据节点的那种情况,那么比较难用决策树算法进行并行化处理,特别是第一个根节点的分裂就只能串行执行,在根节点分裂完成以后,根节点下的两个子节点可以用相应的两台机器进行并行处理,以此类推。从本质上来讲,如果数据是横向存储且想得到全局分类决策树,那么很难进行并行处理,且节点之间不能并行,只能串行。
为了处理大规模数据且数据都是横向划分的情况,现有的很多构造决策树的工作[宋,2007]都是分布式的。图1是现有技术中分布式构造决策树的工作示意图,如图1所示,把数据划分成很多小块,然后每个处理器对每块数据进行处理,构造一个局部的分类决策树,然后用这些子分类器对新的样本进行预测,最后对这些预测结果进行加权集成。还有另外一种方式是每计算一个节点的分裂属性时都要做一次同步,具体方法为:每个处理器对所分配的数据都计算一个局部最佳分裂属性,然后再同步得到全局最佳分裂属性,这样不断递归,最后得到最终的决策分类树。[张,2010]提出了一种基于MapReduce的SPRINT并行分类算法,不过其最终得到的模型并不是全局分类模型,而是局部最优模型,且仍然采用递归的方式(迭代次数不可控),即只实现了节点内部并行,没有实现同一层节点之间的并行。
因此,现有的分类决策树很多实现是串行且基于内存,因此不能处理海量数据;而对于现有的分布式处理方式,虽然数据处理规模有了很大的提高,但是编程实现比较复杂和困难,另外构造的分类决策树不是全局的,只是很多局部子决策树的加权集成。更重要的是,递归实现效率也比较低,迭代过程不可控。
发明内容
本发明的目的在于提供一种采用决策树的数据分类方法和系统。其实现了基于MapReduce的并行决策树ID3算法,不仅可以处理大规模数据集,而且并行效率高,即实现构建决策树中节点内部以及同一层节点之间的并行计算。
为实现本发明的目的而提供的一种采用决策树的数据分类方法,所述方法,包括下列步骤:
步骤100,基于MapReduce机制,并行计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性作为节点构造决策树;
步骤200,根据所述决策树,对输入的数据记录进行分类。
所述步骤100,包括下列步骤:
步骤110,启动一个进程,计算训练数据中包含的每个属性的信息增益,选出最大值作为根节点的分裂属性,并计算决策规则以及传给第一层的前缀信息:
步骤120,判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,执行步骤130;否则,执行步骤130;
步骤130,判断是否产生新的前缀信息,若是,则执行步骤140;否则执行步骤160;
步骤140,决策树层数加一,判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,则执行步骤150;否则执行步骤160;
步骤150,启动一个新的进程,计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息,返回步骤120;
步骤160,结束训练,根据计算得到的决策规则构建决策树。
在进行属性的信息增益计算时采用MapReduce函数采集数据,在Map函数中,根据头文件信息对读入的每一行样本进行解析,产生中间的<key,value>对,key为前缀信息+类别信息+条件属性的名字+条件属性的值或者前缀信息+类别信息,若没有前缀信息,则为空,value为1,Map函数的输入key和value分别为样本的在dfs上偏移位置和样本本身,Reduce函数对中间<key,value>对进行融合。
所述步骤200中,构建完成的决策树保存在HDFS文件系统中,当进行测试时,每个节点从HDFS中提取决策树,对输入的数据记录进行分类。
为实现本发明的目的还提供一种采用决策树的数据分类系统,所述系统,包括:
训练模块,用于基于MapReduce机制,并行计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性作为节点构造决策树;
分类模块,用于根据所述决策树,对输入的数据记录进行分类。
所述训练模块,包括:
信息增益计算模块,用于计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息:
决策规则判断模块,用于判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,触发前缀信息判断模块;否则,直接触发前缀信息判断模块;
前缀信息判断模块,用于判断是否产生新的前缀信息,若是,则触发阈值判断模块;否则结束训练,根据计算得到的决策规则构建决策树;
阈值判断模块,决策树层数加一,判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,则触发信息增益计算模块;否则结束训练,根据计算得到的决策规则构建决策树。
所述训练模块中,在进行属性的信息增益计算时采用MapReduce函数采集数据,在Map函数中,根据头文件信息对读入的每一行样本进行解析,产生中间的<key,value>对,key为前缀信息+类别信息+条件属性的名字+条件属性的值或者前缀信息+类别信息,若没有前缀信息,则为空,value为1,Map函数的输入key和value分别为样本的在dfs上偏移位置和样本本身,Reduce函数对中间<key,value>对进行融合。
所述分类模块,控制每个节点将保存在HDFS文件系统中的构建完成的决策树提取出来,对输入的数据记录进行分类。
本发明的有益效果是:
本发明实现了基于MapReduce的并行决策树算法,解决了传统串行决策树分类算法不能处理的大规模数据的问题。实现了决策树算法ID3的完全并行,即不仅仅是同一节点最佳属性的选择是并行的,而且同一层的所有节点计算最佳属性也是并行的;更重要的是,实现了用循环的方式替换了递归,循环的次数可控,算法最大迭代次数不会超过数据的条件属性的个数。
附图说明
图1是现有技术中分布式构造决策树的工作示意图;
图2是本发明的一种采用决策树的数据分类方法的步骤流程图;
图3是本发明中根据训练数据训练构造决策树的步骤流程图;
图4是本发明的一种采用决策树的数据分类系统的结构示意图;
图5是根据上述产生规则构造的决策树。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种采用决策树的数据分类方法和系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的一种采用决策树的数据分类方法和系统,通过对训练数据,基于MapReduce机制构造决策树,树的中间节点是分裂决策属性,树的叶结点都有类别标记,因此从根节点到叶节点就构成了一条判别规则。当构造完分类决策树后,就可以对测试样本进行分类。
本发明中采用的并行分类决策树算法主要针对分类决策树,而且属性都是类别属性。在大规模数据处理中,连续型属性的处理代价相当高,所以可以把连续型属性通过预处理转化为类别型属性。
下面结合上述目标详细介绍本发明的一种采用决策树的数据分类方法,图2是本发明的一种采用决策树的数据分类方法的步骤流程图,如图2所示,所述方法,包括下列步骤:
步骤100,计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性构造决策树;
图3是本发明中根据训练数据训练构造决策树的步骤流程图,如图3所示,所述步骤100,包括下列步骤:
步骤110,启动一个job:计算训练数据中包含的每个属性的信息增益,选出最大值作为根节点的分裂属性并计算决策规则以及传给第一层的前缀信息:
步骤120,判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,执行步骤130;否则,执行步骤130;
每一层计算完成后,我们都会检查是否产生新的规则,如果产生新的规则就保存到规则集中,产生一个新的数据集,该数据集由原始数据集中去掉能被新规则包含的样本得到。这样下一层操作的数据对象是产生的新数据集,数据集会变得越来越小,最后直到没有新的数据集产生为止,算法结束。
步骤130,判断是否产生新的前缀信息,若是,则执行步骤140;否则执行步骤160;
由于层与层之间的运算是串行的,上一层都会传递前缀信息给下一层节点,这些前缀信息包括从根节点到当前分支的分裂属性信息等。每一层要选择的分裂属性个数是由前缀信息决定的,每个前缀信息代表一个节点。
步骤140,决策树层数加一,判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,则执行步骤150;否则执行步骤160;
本发明实现的并行决策树算法以循环代替了递归,每一层只需要一个job就可以完成,而不关心一个层里面有多少个节点。使得运行完程序所需要的最大job个数可预测(最大数目为样本集中条件属性的数目numAttri),从而有利于控制程序的执行状态。而在递归中,无法预测还有多少节点要运算,这样就无法预测程序何时结束。而本发明中程序需要运行的最大层数由条件属性的个数决定,因此是可控制的。也就是可以设置程序中循环最大的迭代次数为numAttri,而不是递归方式,无法估计程序何时执行结束。
步骤150,启动一个新的job:计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息:返回步骤120;
步骤160,结束训练,根据计算得到的决策规则构建决策树。
作为一种可实施方式,构建完成的决策树模型保存在HDFS文件系统中。当进行测试时,每个节点从HDFS(HDFS本身是一个分布式文件系统)中提取决策树模型,对测试样本进行分类。
较佳地,在训练过程中,基于MapReduce机制,本发明实现了同一层内节点之间、节点内的并行计算,提高算法的执行效率。在进行属性的信息增益计算时采用MapReduce函数采集数据,在Map函数中,根据头文件信息对读入的每一行样本进行解析,产生中间的<key,value>对,key为前缀信息+类别信息+条件属性的名字+条件属性的值或者前缀信息+类别信息(如果没有前缀信息,则为空),value为1。Map函数的输入key和value分别为样本的在dfs上偏移位置和样本本身。Reduce函数对中间<key,value>对进行融合,即对具有相同key的value进行统计。输入的key和value是Map函数的输出,输出的key与Map函数相同,value为统计值。
MapReduce是Google实验室提出的一种简化的分布式程序设计模型,用于处理和生成大量数据集。通过该模型,程序自动分布到一个由普通机器组成的超大机群上并发执行。[Dean J,Ghemawat S.:MapReduce:Simplified dataprocessing on large clusters [J].Communications of The ACM,vol:51.pp:107-113,2008.]
Map和Reduce是该模型中的两大基本操作。其中,Map是把一组数据一对一的映射为另外的一组数据,Reduce是对数据进行规约,映射规则与规约规则可由用户通过函数来分别指定。现实生活中很多任务的实现都是可以基于这样的映射规约模式。
实现MapReduce操作的整个流程如下:
(1)当用户程序调用MapReduce函数时,输入文件将被分隔成M块(每块大小通常为16M至64M,可由用户通过参数控制),同时用户程序将被复制许多份存储于机群中。
(2)机群中的某个节点将被视为主节点。主节点选择空闲节点,并指派给每个节点一个Map任务或一个Reduce任务。最终将有M个Map任务和R个Reduce任务被指派完成。
(3)被指派到Map任务的节点将读入所对应的输入文件块,输入的<key,value>对将通过用户自定义的Map函数得到一组同样用<key,value>对表示的中间结果集合。
(4)中间结果对将会周期性的写入本地硬盘并通过分隔函数分隔成R个块。同时,存储中间结果的本地硬盘位置将会返回给主节点,以便其下一步指派Reduce任务。
(5)被指派到Reduce任务的节点将远程读入中间结果。待中间结果数据全部被读入后,将会按照key来排序,使得具有同样key的中间结果聚集在一起。
(6)含有相同key的<key,value>对通过用户自定义的Reduce函数进行归约,得到最终结果并写出输出文件。
MapReduce通过把对数据集的大规模操作分发给网络上的每个节点来实现可靠性,每个节点会周期性的把完成的工作和状态信息返回给主节点。如果一个节点保持沉默超过一个预设的时间间隔,主节点就认为该节点失效了,并把分配给这个节点的数据发到别的节点,并且因此可以被其它节点所调度执行。
由于MapReduce运行系统已考虑到了输入数据划分、节点失效处理、节点之间所需通信等各个细节,使得程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大规模的分布式系统资源。
步骤200,根据所述决策树,对输入的数据记录进行分类。
相应于本发明的一种采用决策树的数据分类方法,还提供一种采用决策树的数据分类系统,图4是本发明的一种采用决策树的数据分类系统的结构示意图,如图4所示,所述系统,包括:
训练模块1,用于基于MapReduce机制,并行计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性作为节点构造决策树;
分类模块2,用于根据所述决策树,对输入的数据记录进行分类。其中,所述训练模块1,包括:
信息增益计算模块11,用于计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息:
决策规则判断模块12,用于判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,触发前缀信息判断模块13;否则,触发前缀信息判断模块13;
前缀信息判断模块13,用于判断是否产生新的前缀信息,若是,则触发阈值判断模块14;否则结束训练,根据计算得到的决策规则构建决策树;
阈值判断模块14,决策树层数加一,判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,则触发信息增益计算模块11;否则结束训练,根据计算得到的决策规则构建决策树。
对于输入的一段数据记录,启动第一个job,信息增益计算模块11计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息;由于是第一个job,因此还没有产生前缀信息,当前训练数据即是输入的数据记录,当前节点即是根节点,传给下一层的前缀信息即是传给第一层的前缀信息。决策规则判断模块12判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,触发前缀信息判断模块13;如果没有产生新的决策规则,则直接触发前缀信息判断模块13;所述前缀信息判断模块13判断是否产生新的前缀信息,若是,则触发阈值判断模块14;决策树层数加一,阈值判断模块14判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,则启动一个新的job,再次触发信息增益计算模块11,计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息;如此反复执行直到不再产生新的前缀信息或者决策树的层数大于训练数据中包含的所有属性的总数,则结束训练,根据计算得到的决策规则构建决策树。
为了更清楚地说明本发明的技术方案,下面以weka3.5中的数据weather.nominal为例来讲解构建决策树的过程。算法主要是针对结构化的arff格式的数据,arff格式的数据说明如下:
数据的名称,以relation开头;
数据中包含的样本整数,以totalnum开头,如果样本数未知则设为-1;
数据中的属性,包括nominal和numeric,都是以attribute开头;
文件中的数据以data开头
weather.nominal数据如下:
relation weather.symbolic
attribute outlook{sunny,overcast,rainy}
attribute temperature{hot,mild,cool}
attribute humidity{high,normal}
attribute windy{TRUE,FALSE}
attribute play{yes,no}
data
sunny,hot,high,FALSE,no
sunny,hot,high,TRUE,no
overcast,hot,high,FALSE,yes
rainy,mild,high,FALSE,yes
rainy,cool,normal,FALSE,yes
rainy,cool,normal,TRUE,no
overcast,cool,normal,TRUE,yes
sunny,mild,high,FALSE,no
sunny,cool,normal,FALSE,yes
rainy,mild,normal,FALSE,yes
sunny,mild,normal,TRUE,yes
overcast,mild,high,TRUE,yes
overcast,hot,normal,FALSE,yes
rainy,mild,high,TRUE,no
总共有5个属性,包括4个条件属性和1个决策属性。每个属性都是类别型的,包括有若干个属性值。
1.第一个job的输出如下:
no5
no,humidity,high 4
no,humidity,normal 1
no,outlook,rainy 2
no,outlook,sunny 3
no,temperature,cool 1
no,temperature,hot 2
no,temperature,mild 2
no,windy,FALSE 2
no,windy,TRUE 3
yes 9
yes,humidity,high 3
yes,humidity,normal 6
yes,outlook,overcast 4
yes,outlook,rainy 3
yes,outlook,sunny 2
yes,temperature,cool 3
yes,temperature,hot 2
yes,temperature,mild 4
yes,windy,FALSE 6
yes,windy,TRUE 3
通过计算各个属性的信息增益后,选出根节点的分裂属性为outlook,然后产生一条新的规则:outlook=overcast yes(confidence=1.0),以及2条的前缀信息:
outlook,sunny 2,3
outlook,rainy 3,2
其中outlook是属性名称,sunny是属性值,后面的两个数字2和3分别指outlook=sunny的分支中属于yes和no的样本数。
2.第二个job的工作
由于产生了新的规则,因此要删除原始训练集中包含该规则的样本,产生新的数据集如下:
rainy,cool,normal,FALSE,yes
rainy,cool,normal,TRUE,no
rainy,mild,high,FALSE,yes
rainy,mild,high,TRUE,no
rainy,mild,normal,FALSE,yes
sunny,cool,normal,FALSE,yes
sunny,hot,high,FALSE,no
sunny,hot,high,TRUE,no
sunny,mild,high,FALSE,no
sunny,mild,normal,TRUE,yes
3.第三个job的工作
第三个job的任务跟第一个job类似,但是由于已经产生了前缀信息,所以在最后的reduce输出中都有前缀,结果如下:
outlook,rainy,no,temperature,cool 1
outlook,rainy,no,temperature,mild 1
outlook,rainy,no,humidity,high 1
outlook,rainy,no,humidity,normal 1
outlook,rainy,no,windy,TRUE 2
outlook,rainy,yes,temperature,cool 1
outlook,rainy,yes,temperature,mild 2
outlook,rainy,yes,humidity,high 1
outlook,rainy,yes,humi dity,normal 2
outlook,rainy,yes,windy,FALSE 3
outlook,sunny,no,temperature,hot 2
outlook,sunny,no,temperature,mild 1
outlook,sunny,no,humidity,high 3
outlook,sunny,no,windy,FALSE 2
outlook,sunny,no,windy,TRUE 1
outlook,sunny,yes,temperature,cool 1
outlook,sunny,yes,temperature,mild 1
outlook,sunny,yes,humidity,normal 2
outlook,sunny,yes,windy,FALSE 1
outlook,sunny,yes,windy,TRUE 1
我们可以看到输出的每一条记录都会有一个前缀实际上每个前缀就对应着要找出一个分裂属性,因此这些输出中我们可以计算得到两个分裂属性。通过计算分类属性,我得到了以下4条规则:
outlook=sunny,humidity=high no(confidence=1.0)
outlook=sunny,humidity=normal yes(confidence=1.0)
outlook=rainy,windy=TRUE no(confidence=1.0)
outlook=rainy,windy=FALSE yes(confidence=1.0)
由于没有产生新的前缀信息,所以训练结束,最后得到分类决策树模型。
图5是根据上述产生规则构造的决策树,如图5所示,最后产生的决策规则如下,其中参数confidence为0.75,minNumObj为2。
输出的规则:
outlook=sunny
|humidity=high:no(3.0)
|humidity=normal:yes(2.0)
outlook=overcast:yes(4.0)
outlook=rainy
|windy=TRUE:no(2.0)
|windy=FALSE:yes(3.0)
本发明的有益效果在于:
1.设计实现了并行决策树ID3算法,解决了分类决策树处理大规模数据的问题;
2.实现了算法的完全并行;即不仅仅是同一节点最佳属性的选择是并行的,而且同一层的所有节点计算最佳属性也是并行的;更重要的是,实现了用循环的方式替换了递归,循环的次数可控,最大次数不会超过数据的条件属性的个数;
3.实现的算法构造的分类决策树模型是全局的;解决了分布式算法下求解全局最优解比较难的问题;
4.基于MapReduce的并行编程机制;使得代码易于实现和理解,且能够很容易扩展的大规模集群中运行,提高算法的执行效率,减少执行时间。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
Claims (4)
1.一种采用决策树的数据分类方法,其特征在于,所述方法,包括下列步骤:
步骤100,基于MapReduce机制,并行计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性作为节点构造决策树;其中,在进行属性的信息增益计算时采用MapReduce机制采集数据,在MapReduce机制的Map函数中,根据头文件信息对读入的每一行样本进行解析,产生中间的<key,value>对,key为前缀信息+类别信息+条件属性的名字+条件属性的值或者前缀信息+类别信息,若没有前缀信息,则为空,value为1,MapReduce机制的Map函数的输入key和value分别为样本的在分布式文件系统上偏移位置和样本本身,MapReduce机制的Reduce函数对中间<key,value>对进行融合;
步骤200,根据所述决策树,对输入的数据记录进行分类;
其中,所述步骤100,包括下列步骤:
步骤110,启动一个进程,计算训练数据中包含的每个属性的信息增益,选出最大值作为根节点的分裂属性,并计算决策规则以及传给第一层的前缀信息:
步骤120,判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,执行步骤130;否则,执行步骤130;
步骤130,判断是否产生新的前缀信息,若是,则执行步骤140;否则执行步骤160;
步骤140,决策树层数加一,判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,则执行步骤150;否则执行步骤160;
步骤150,启动一个新的进程,计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息,返回步骤120;
步骤160,结束训练,根据计算得到的决策规则构建决策树。
2.根据权利要求1所述的采用决策树的数据分类方法,其特征在于,所述步骤200中,构建完成的决策树保存在HDFS文件系统中,当进行测试时,每个节点从HDFS中提取决策树,对输入的数据记录进行分类。
3.一种采用决策树的数据分类系统,其特征在于,所述系统,包括:
训练模块,用于基于MapReduce机制,并行计算训练数据中包含的每个属性的信息增益,选出最佳的分裂决策属性作为节点构造决策树;其中,在进行属性的信息增益计算时采用MapReduce机制采集数据,在MapReduce机制的Map函数中,根据头文件信息对读入的每一行样本进行解析,产生中间的<key,value>对,key为前缀信息+类别信息+条件属性的名字+条件属性的值或者前缀信息+类别信息,若没有前缀信息,则为空,value为1,MapReduce机制的Map函数的输入key和value分别为样本的在分布式文件系统上偏移位置和样本本身,MapReduce机制的Reduce函数对中间<key,value>对进行融合;
分类模块,用于根据所述决策树,对输入的数据记录进行分类;
其中,所述训练模块,包括:
信息增益计算模块,用于启动一个进程,计算训练数据中包含的每个属性的信息增益,选出最大值作为根节点的分裂属性,并计算决策规则以及传给第一层的前缀信息;
判断模块,用于判断是否产生了新的决策规则,若是,则将产生的新的决策规则保存到规则集中,同时删除当前训练数据中包含该规则的样本,产生新的数据集,判断是否产生新的前缀信息;否则,直接判断是否产生新的前缀信息;接着
判断是否产生新的前缀信息时,若否,则触发决策树构建模块;若是,则决策树层数加一,接着
判断当前决策树的层数是否小于训练数据中包含的所有属性的总数,若是,启动一个新的进程,计算在当前前缀信息下,当前训练数据中包含的每个属性的信息增益,选出最大值作为当前节点的分裂属性,并计算决策规则以及传给下一层的前缀信息,触发判断模块;若否,则触发决策树构建模块;
决策树构建模块,用于结束训练,根据计算得到的决策规则构建决策树。
4.根据权利要求3所述的采用决策树的数据分类系统,其特征在于,所述分类模块,控制每个节点将保存在HDFS文件系统中的构建完成的决策树提取出来,对输入的数据记录进行分类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110143821 CN102214213B (zh) | 2011-05-31 | 2011-05-31 | 一种采用决策树的数据分类方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110143821 CN102214213B (zh) | 2011-05-31 | 2011-05-31 | 一种采用决策树的数据分类方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102214213A CN102214213A (zh) | 2011-10-12 |
CN102214213B true CN102214213B (zh) | 2013-06-19 |
Family
ID=44745521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110143821 Active CN102214213B (zh) | 2011-05-31 | 2011-05-31 | 一种采用决策树的数据分类方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102214213B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105932675B (zh) * | 2016-06-30 | 2018-05-25 | 四川大学 | 一种电力系统潮流并行协调算法 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092889B (zh) * | 2011-11-07 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 实体对象的确定方法、条件节点树的建立方法及装置 |
CN102523241B (zh) * | 2012-01-09 | 2014-11-19 | 北京邮电大学 | 基于决策树高速并行处理的网络流量在线分类方法及装置 |
CN102662996A (zh) * | 2012-03-15 | 2012-09-12 | 北京播思软件技术有限公司 | 一种数据快速分类的方法 |
CN102663022B (zh) * | 2012-03-21 | 2015-02-11 | 浙江盘石信息技术有限公司 | 一种基于url的分类识别方法 |
US9037587B2 (en) * | 2012-05-10 | 2015-05-19 | International Business Machines Corporation | System and method for the classification of storage |
EP2864920B1 (en) | 2012-06-21 | 2023-05-10 | Philip Morris Products S.A. | Systems and methods for generating biomarker signatures with integrated bias correction and class prediction |
CN102929989B (zh) * | 2012-10-19 | 2016-01-20 | 南京邮电大学 | 一种地理空间数据在云计算平台上的负载均衡方法 |
CN105808582A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于分层策略的决策树并行生成方法和装置 |
CN106156786B (zh) * | 2015-04-19 | 2019-12-27 | 北京典赞科技有限公司 | 基于多gpu的随机森林训练方法 |
US10572818B2 (en) * | 2015-06-02 | 2020-02-25 | International Business Machines Corporation | Horizontal decision tree learning from very high rate data streams with horizontal parallel conflict resolution |
CN106888237B (zh) * | 2015-12-15 | 2020-01-07 | 中国移动通信集团公司 | 一种数据调度方法及系统 |
US10817800B2 (en) * | 2016-01-20 | 2020-10-27 | Robert Bosch Gmbh | Value addition dependent data mining techniques for assembly lines |
CN106228398A (zh) * | 2016-07-20 | 2016-12-14 | 武汉斗鱼网络科技有限公司 | 基于c4.5决策树算法的特定用户挖掘系统及其方法 |
CN106529416A (zh) * | 2016-10-18 | 2017-03-22 | 国网山东省电力公司电力科学研究院 | 基于毫米波雷达决策树分类的电力线检测方法及系统 |
CN106899586A (zh) * | 2017-02-21 | 2017-06-27 | 上海交通大学 | 一种基于机器学习的dns服务器软件指纹识别系统和方法 |
CN107729555B (zh) * | 2017-11-07 | 2020-10-09 | 太原理工大学 | 一种海量大数据分布式预测方法及系统 |
US10831733B2 (en) | 2017-12-22 | 2020-11-10 | International Business Machines Corporation | Interactive adjustment of decision rules |
CN108108455B (zh) * | 2017-12-28 | 2020-06-16 | Oppo广东移动通信有限公司 | 目的地的推送方法、装置、存储介质及电子设备 |
CN108229573B (zh) * | 2018-01-17 | 2021-05-25 | 北京中星微人工智能芯片技术有限公司 | 基于决策树的分类计算方法和装置 |
CN108710979B (zh) * | 2018-03-31 | 2022-02-18 | 西安电子科技大学 | 一种基于决策树的物联网港口船舶调度方法 |
CN108984773B (zh) * | 2018-07-23 | 2020-09-04 | 杭州呯嘭智能技术有限公司 | 数据缺失情况下的黑名单多维信息验证方法及系统及可读存储介质及设备 |
CN109214671B (zh) * | 2018-08-27 | 2022-03-01 | 平安科技(深圳)有限公司 | 人员分组方法、装置、电子装置及计算机可读存储介质 |
CN110895969B (zh) * | 2018-09-13 | 2023-12-15 | 大连大学 | 房颤预测决策树及其剪枝的方法 |
CN110019987B (zh) * | 2018-11-28 | 2023-05-09 | 创新先进技术有限公司 | 一种基于决策树的日志匹配方法和装置 |
CN109559059B (zh) * | 2018-12-17 | 2022-12-27 | 重庆邮电大学 | 一种基于回归决策树的光纤生产规则制定方法 |
CN110457365B (zh) * | 2019-07-15 | 2023-10-27 | 中国平安人寿保险股份有限公司 | 基于时序并行的决策树生成方法及装置、电子设备 |
CN111259933B (zh) * | 2020-01-09 | 2023-06-13 | 中国科学院计算技术研究所 | 基于分布式并行决策树的高维特征数据分类方法及系统 |
CN111695588B (zh) * | 2020-04-14 | 2021-03-23 | 北京迅达云成科技有限公司 | 一种基于云计算的分布式决策树学习系统 |
CN111340147B (zh) * | 2020-05-22 | 2021-12-07 | 四川新网银行股份有限公司 | 基于决策树的决策行为生成方法及系统 |
CN112348583B (zh) * | 2020-11-04 | 2022-12-06 | 贝壳技术有限公司 | 用户偏好生成方法与生成系统 |
CN114528948B (zh) * | 2022-03-10 | 2023-07-11 | 电子科技大学 | 一种复杂系统的序贯测试序列生成方法 |
CN114880318A (zh) * | 2022-06-09 | 2022-08-09 | 杭州比智科技有限公司 | 一种基于数据标准实现自动化数据治理的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751399A (zh) * | 2008-12-12 | 2010-06-23 | 中国移动通信集团河北有限公司 | 决策树优化方法和优化系统 |
CN102054002A (zh) * | 2009-10-28 | 2011-05-11 | 中国移动通信集团公司 | 一种数据挖掘系统中决策树的生成方法及装置 |
-
2011
- 2011-05-31 CN CN 201110143821 patent/CN102214213B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105932675B (zh) * | 2016-06-30 | 2018-05-25 | 四川大学 | 一种电力系统潮流并行协调算法 |
Also Published As
Publication number | Publication date |
---|---|
CN102214213A (zh) | 2011-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102214213B (zh) | 一种采用决策树的数据分类方法和系统 | |
Segatori et al. | On distributed fuzzy decision trees for big data | |
Shunmugapriya et al. | Optimization of stacking ensemble configurations through artificial bee colony algorithm | |
Zabihi et al. | A novel history-driven artificial bee colony algorithm for data clustering | |
WO2014110167A2 (en) | Integrated machine learning for a data management product | |
CN104750780B (zh) | 一种基于统计分析的Hadoop配置参数优化方法 | |
CN108009003A (zh) | 一种多目标虚拟机自适应位置选择方法、分布式云系统 | |
CN111260073A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN104881581A (zh) | 物联网数据高效分析方法 | |
Celik et al. | Coabcminer: an algorithm for cooperative rule classification system based on artificial bee colony | |
CN116594748B (zh) | 针对任务的模型定制处理方法、装置、设备和介质 | |
CN111651613B (zh) | 一种基于知识图谱嵌入的动态推荐方法及系统 | |
CN104834751A (zh) | 基于物联网的数据分析方法 | |
CN102945283A (zh) | 一种语义Web服务组合方法 | |
US20240177017A1 (en) | System and method for continuous integration and deployment of service model using deep learning framework | |
Alfred | FEATURE TRANSFORMATION: A GENETIC‐BASED FEATURE CONSTRUCTION METHOD FOR DATA SUMMARIZATION | |
Mantovani | Use of meta-learning for hyperparameter tuning of classification problems | |
CN110119268B (zh) | 基于人工智能的工作流优化方法 | |
CN112214488A (zh) | 一种欧式空间数据索引树及构建和检索方法 | |
CN115270921B (zh) | 基于组合预测模型的电力负载预测方法、系统及存储介质 | |
Dabah et al. | Efficient parallel branch-and-bound approaches for exact graph edit distance problem | |
Rodríguez-Mazahua et al. | Comparative Analysis of Decision Tree Algorithms for Data Warehouse Fragmentation | |
CN110135747B (zh) | 基于神经网络的流程定制方法 | |
CN104866587A (zh) | 基于物联网的数据挖掘方法 | |
Huang et al. | A Hadoop configuration optimization method based on middle platform business operation requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |