一种认知计算中基于cart的决策树构建方法

文档序号:10489049阅读:203来源:国知局
一种认知计算中基于cart的决策树构建方法
【专利摘要】本发明公开一种认知计算中基于CART的决策树构建方法,包括:根据决策树的制定规则,初始化决策树的根节点和对应的特征属性集;对训练集的数据进行排序操作;判断节点中的所有样本数据是否属于同一类,计算待分裂的节点的最优和次优特征属性,判断是否满足选择最优分裂属性和中断机制的分裂条件,若满足,则使用最优分裂属性进行分裂,根据使用最优分裂属性分裂,然后使用特征属性分裂后的节点迭代替换当前节点,从左右两个分支中添加一个新的叶子节点,达到决策树的自动分裂;否则等待数据流输入,进行样本更新,继续对节点分裂进行计算。本发明进一步提高了处理数据流的准确度,降低了系统阻塞的可能性。
【专利说明】
一种认知计算中基于CART的决策树构建方法
技术领域
[0001] 本发明涉及大数据处理技术领域,尤其涉及认知计算中基于CART的决策树构建方 法。
【背景技术】
[0002] 云计算、物联网等新兴技术的快速发展促使数据的规模正以前所未有的速度增 长,大数据时代已经开始到来。决策树是数据挖掘中的一种常用数据处理模型,常见的决策 树构建算法包括ID3,C4.5以及CART等,然而,ID3,C4.5和CART等决策树构建算法都是为静 态数据集设计的,它们无法直接应用于数据流的处理,因为数据流是无穷无尽的。除此之 外,数据流将以很快的速度源源不断的流入系统,这也给决策树的训练带来了极大的挑战。 现有的研究对数据流的处理也有一些解决方案,近十年使用最多的工具是增量学习,增量 学习技术能够从数据中学习新的知识并且保留原有知识,并且整个过程不用重复处理已经 学习过的数据。根据这一特性,可以使用增量学习技术来获取特征属性。但由于无法使用无 穷多的数据集来计算最优特征的选择,因此只能使用已知数据来构成样本集来训练决策 树,已经远远不能满足当前数据处理的需要。

【发明内容】

[0003] 鉴于上述现有技术的不足之处,本发明提出一种认知计算中基于CART的决策树构 建方法,在一定概率下,通过样本训练所得的最优特征与整个数据流应该选择的最优特征 是一致的,可在较短的训练时间内得到较高准确性的决策树模型。
[0004] -种认知计算中基于CART的决策树构建方法,包括以下步骤:
[0005] 步骤1、初始化决策树的根节点和对应的特征属性集;
[0006] 步骤2、根据此时决策树的特征属性,对训练集的数据进行排序操作;
[0007] 步骤3、判断节点中的所有样本数据是否具有相同类别的数据标签,如果是,则执 行步骤4,否则结束;
[0008] 步骤4、将节点设置为待分裂的节点,同时计算节点的最优和次优特征属性;
[0009] 步骤5、判断节点是否满足最优特征属性和中断机制的分裂条件,如果满足,则使 用最优特征属性进行分裂,将分裂后的节点替换当前节点,并从分支中添加一个新的叶子 节点,达到决策树的自动分裂;否则等待数据流输入,进行样本更新,然后执行步骤4。
[0010]所述决策树的特征属性是Gini增益。
[0011]所述最优特征属性为Gini增益最大的特征属性。
[0012] 所述中断机制的分裂条件是满足f > A,其中r为尾-ΦΤ), i为X或y,L、R代表不同的训练子集;中断参·
其中Z(K)是指标准正态 分布N(0,1)的l-α分位数,Q(K)则表示5K2-8K+4,在这种情况下,gx比g y大的概率是l-α。
[0013] 本发明通过对海量数据流训练来处理数据流数据,使用已知数据来构成样本集来 训练决策树,提高了处理数据流的准确度,降低了系统阻塞的可能性。
【附图说明】
[0014] 图1为本发明实施例基于CART的决策树构建方法的流程图;
[0015] 图2为本发明实施例与MDT和GDT算法准确性性能对比;
[0016] 图3为本发明实施例与McDiarmid Tree算法性能对比;
[0017] 图4为本发明实施例准确性与干扰数据比例的关系;
[0018] 图5为本发明实施例与Gauss Decision Tree训练时间对比。
【具体实施方式】
[0019] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0020] CART首先创建一个根节点No,在学习的过程中,对于每一个指定的节点1都有一个 指定的训练集S的子集33与之对应。对于根节点,对应的就是训练集S。当一个节点对应的子 集都属于同一个分类的时候,该节点就被设置为叶子节点,代表该节点的训练已经完成。如 果一个节点对应的子集不都属于同一个分类的时候,算法将继续迭代进行,直至所有的训 练子集都对应相应的叶子节点。
[0021] 对于每个可以获取的属性b1,该属性的取值B1将分成为两个区间的子集g和碟。 这两种子集将训练子集3 3分成两个部分Lq和Rq。在CART中,常用的杂质度量方法是Gini指 数,对于一个子训练集S a,其Gini指数表示方法如下:
[0022] (1)
[0023]其中,
P表示训练集中属于该分类的概率,k代表分类数值,a代表训练子集编号。从 公式1容易看出,Gini指数的最小值是0,当所有样本都正确分类的时候取得最小值。换句话 说,Gini指数反映了分类结果的纯度,数值越小,分类越纯,结果也就越准确。当前节点中训 练集的分类通概率出现时,Gini指数出现最大值。
[0024]根据概率关系,可以得到加权Gini指数:
[0025]
(:2>
[0026]在CART中,根据Gini指数或者加权Gini指数的增益来对节点进行分裂操作,这类 似于ID3算法中根据信息熵增益进行分裂操作。
[0027] 所有的计算和分析都是基于整个数据集进行分析的。下面将讨论针对流数据的分 析。由于流数据是无限的,不可能做到像CART-样来计算样本中属于某一分类的概率,而只 能根据已知的数据样本对其概率进行估计。
[0028] 考虑到一个固定的节点的情况,在前面的分析中使用53表示,根据前面的分析,可 以得到如下结论:
[0029] ii) κΑ)
[0031] 这样,相当于是考虑了 K个特征中的K-I个来进行计算。根据这一规则,概率Pk可以 类似的计算出来,计算方法如下:
[0032]
(5,)
[0033]从公式5可以看出,K个特征属性中的K-I一个是重要的。注意,概率Pj不是根据选 定的特征属性来决定的,而是可以根据G(A)、&(€)以及。(R)来计算,结算公式如 下: Γλλο? ?
(6)
[0035] 对于任意的数据集,数据集的每一个组成元素都属于K个类别的某一个。Gini指数 可以使用如下公式计算。
[0036]
(7)
[0037] 其中Pj表示数据集中属于第j个分类的概率。这样一来,Gini指数可以使用K-I个 变量的函数来表示。同样,Gini增益也可以使用以上提及的参数来表示:
[0038] Gini_g = Gini(Pi,P2. . . , Ρκ-ι )-PLGini (Pu, P2L. . . ,P(k-i)l)-( l-PL)Gini (Pir, P2R. . . ,P(k-i)r) (8)
[0039] 因此,最优的分裂选择特征属性可以根据如下公式求出:
[0040]
(9)
[0041] 使用符号g1表示特征属性b1的Gini增益。使用符号芎表示if的估计量,后面出现预 估量的地方,采用相同的表示方法。这些预估值在符合二项分布的随机变量中可以当作是 算术平均值来对待。假设s是数据集S的一个变量,定义一个变量δ,当s属于L 1时候为1,不属 于L1时候为0。这时候,δ是服从二项分布的变量,且平均值为巧,方差为g(l- P/类似的, 定义SkL和SkR,k属于{1,2,…,K-I}。当左节点数据子集Im属于第k个分类的时候,S klj变量值 为1,当右节点数据子集rJl于第k个分类的时候,SkR变量值为1。
[0042] 如果根据两个不同的特征属性和样本集计算出的Gini增益数值大于一个给定的 特殊值,则该值一定概率上反映真实的Gini增益值。根据这一依据,可以根据最近得到的数 据集决定最佳特征属性进行决策树分裂建树操作。
[0043]为了方便描述,将以,思,,..,尽_邮)记作穿。然后考虑两个特 征属性bx和by,然后计算它们的Gini增益值。如果它们的差值满足最优分裂属性的方法,即 如下公式10的关系:
(IQ)
[0045] 其中引入中断参数γκ如公式11所示:
[0046]
(Ii)
[0047] 公式(11)中的Ζ(1-α)是指标准正态分布Ν(0,1)的l-α分位数。Q(K)则表示5Κ 2-8Κ+4。 在这种情况下,gx比gy大的概率是l-α。也就是说,如果g x和gy的Gini增益的预估值的关系满 足公式10,则gx和g y的真实值满足gx>gy的概率是l-α。中断参数的引入是引入中断机制,BP γκ>〇,它可以一定程度上防止程序堵塞,较少程序的计算量。
[0048] 根据之前的结论可以知道,当bx和by是具有最大Gini增益的特征属性的时候,那 么,b x可以选择作为分裂属性。而这种情况出现的可信度为l-c^1。也就是说,可以在一定可 信度下确定分裂所应该选择的最优特征属性。
[0049] 在图 2 中,通过实验分析CART_DS算法与McDiarmid Tree (MDT)和Gaussian Decision Tree(⑶T)算法进行性能对比。设置中断因子参数Θ为0.05,设置固定概率值α为 10-7。固定这些参数不变,从104到109改变训练数据集的数量,比较算法分类的准确性上的 表现。三种算法在准确性性能方面的表现基本一致,本章提出的CART_DS算法稍微领先。这 种结果出现的原因是因为三种算法实质上都是基于CART生成决策树算法所作出的改进。也 就是说,对于相同的数据集,三种算法可能生成一致的决策树。但是从总体趋势我们可以看 出,算法的准确性都随着数据集的数量的增加表现为上升趋势,当数据集数量在IO 9数量级 的时候,算法的准确性可以接近95%。
[0050] 在图3中,分析CART_DS算法与McDiarmid Tree算法的性能。设置中断因子参数Θ为 〇,设置固定概率值α为0.1。在使用CART生成决策树的过程中,最重要的分裂(也就是具有最 大增益的分裂)通常就是第一次分裂,即根节点的分裂。由于生成树的最终结果是类似的, 算法最终的准确率趋于相同。同时从图中可以看出,CART_DS算法比McDiarmid Tree算法做 分裂的时候所需要的数据样本数量更少,因此,CART_DS算法在于一个分裂操作中需要更少 的训练数据集,根节点的分裂操作总是比McDiarmid Tree算法更快。
[0051] 在图4中,在样本数据中加入一定比例的噪声(干扰数据)。使用如下机制来生成干 扰数据。在每一次数据生成的过程中,按照一个固定的概率Φ来改变样本数据中的特征属性 和标签值,改变后的值是所有可能值,并且每一种数值的取值可能性是一致的。Φ的取值从 0 %到50 %之间(包含)逐渐变化。本实验的仿真实验结果表明,随着噪声比例的增加,准确 率随之下降。
[0052] 在图5中,分析CART_DS算法与Gaussian Decision Tree算法在训练时间上的性能 对比。设置中断因子参数Θ为0,设置固定概率值α为0.1,改变训练样本集的数量η。从实验结 果可以看出,随着训练数据集规模的增加,CART_DS算法在训练时间上的表现比Gaussian Decision Tree算法在训练时间上的表现所体现出的优势越发明显,换句话说,CART_DS算 法在大数据规模下使用,优势更加明显。
[0053]本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括 由以上技术特征任意组合所组成的技术方案。
【主权项】
1. 一种认知计算中基于CART的决策树构建方法,其特征是,包括w下步骤: 步骤1、初始化决策树的根节点和对应的特征属性集; 步骤2、根据此时决策树的特征属性,对训练集的数据进行排序操作; 步骤3、判断节点中的所有样本数据是否具有相同类别的数据标签,如果是,则执行步 骤4,否则结束; 步骤4、将节点设置为待分裂的节点,同时计算节点的最优和次优特征属性; 步骤5、判断节点是否满足最优特征属性和中断机制的分裂条件,如果满足,则使用最 优特征属性进行分裂,将分裂后的节点替换当前节点,并从分支中添加一个新的叶子节点, 达到决策树的自动分裂;否则等待数据流输入,进行样本更新,然后执行步骤4。2. 根据权利要求1所述的决策树构建方法,其特征是,步骤2中所述决策树的特征属性 是Gini增益。3. 根据权利要求2所述的决策树构建方法,其特征是,所述最优特征属性为Gini增益最 大的特征属性。4. 根据权利要求1所述的决策树构建方法,其特征是,所述中断机制的分裂条件是满足 r-r >心其中r为伤'化'_各(巧,思,.·馬雌,瑪,,..,语_峭),功X或y,L、R代表不同的训练子 集;中断参数其中Ζ(ι-α)是指标准正态分布N(0,1)的1-α分位数,Q化)贝。 表示5Κ2-8Κ+4,在运种情况下,gx比gy大的概率是1-α。
【文档编号】G06F17/30GK105843924SQ201610179487
【公开日】2016年8月10日
【申请日】2016年3月25日
【发明人】王堃, 陆恒, 张明翔, 岳东, 孙雁飞, 吴蒙, 亓晋, 陈思光
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1