一种层叠决策树构建方法

文档序号:6423413阅读:207来源:国知局
专利名称:一种层叠决策树构建方法
技术领域
本发明涉及一种新的数据挖掘方法一层叠决策树构建方法 (StratifiedDecision Tree,简称SDT),属于数据挖掘领域。
背景技术
决策树方法是应用最广泛也是最实用的数据挖掘预测技术之一,决策树的方法原理在于找出当前数据集里面最具区分不同数据能力的分裂属性,然后依照该分裂属性的取值把数据集合划分为多个子集,每个子集对应于分叉树的一个分枝,然后对每一个子集递归调用这个过程,直到所有子集包含同一类型的数据,从而得到一个决策树的模型,并依此对新的待处理数据集进行预测分类。决策树方法当中,分支节点属性的选取方法处于核心位置,选取方法比较出名的有J. R. Quinlan提出了信息增益标准、L. Breiman等在CART系统中提出的Gini-Index标准、J. Mingers提出了 χ 2统计标准、K. Kira等提出了 Relief标准、S. J. Hong等提出了 CM 标准等。出现多种分支节点属性的选取方法是因为具体应用中数据集属性之间的关系是不同的。在实际应用中,数据集属性之间的关系纷繁复杂而且不可预料,常会遇到数据中存在非线性条件属性关系的复杂情况,这里,我们将“非线性条件属性关系”定义为属性之间没有线性或其他明确的数学关系。我们假设一个数据集的属性集合为{A,B,C,L,Z}(其中Z是类别属性,属性B是属性A的非线性条件属性),常存在这种情况:A和B之间没有相关性,而且两者与类别属性Z之间的相关性也都很弱,此时若直接应用现有数据挖掘方法, A会被当作弱区分能力的属性,而其实A可能与Z之间并非弱相关,A对于类别预测可能是有重要作用的,是具有很强的数据区分能力的,但是需要依据属性B进行数据集的拆分,在子集中才能体现出很强的区分能力。比如在数字图书馆的馆藏数据集中,存在价格、年代和用户评分三种属性,直接计算会发现价格和用户评分之间的相关系数是很低的,但是依据年代进行数据集的划分,可以明显发现在数据子集中价格与用户评分之间的相关性大大提升,主要原因在于书籍价格是具有时代特征的,同一时代书籍的价格之间才有可比性。然而根据现有技术中的决策树方法,这种“非线性条件属性关系”的强相关属性就会被忽视而导致数据挖掘的效果大打折扣

发明内容
本发明的目的是针对现有技术的不足,解决现有决策树方法在非线性条件属性关系存在情况下难以取得理想效果的问题,提出一种新的决策树构建方法,用于对数据进行预测分类和数据挖掘。本发明的思想是引入“分层”的概念,在分支节点属性的选取中不仅针对平面信息判断,而且在立体层信息之上对属性进行控制,从而消除条件属性的影响。
可以将SDT方法中分支节点的类别区分为以下两种(1)层级节点层级节点是指在方法当中起到化解条件属性影响的节点,对应于分层属性。这种分层属性可能存在多个,依照分层能力排序并拆分数据集。(2)区间节点区间节点是指在通过层级节点消除条件属性影响之后,在底层进行子集划分的节点,可以理解为传统决策树的分裂节点。在层级节点处理之后,在内部利用已有的分裂方法 (比如信息熵)来进行决策树构建。本发明提供了一种层叠决策树构建方法,包括以下步骤一、计算当前数据集中所有非类别属性与类别属性的相关系数;二、取出相关系数小于阈值的m个属性,放入待选分层属性簇中;三、在待选分层属性簇中取出一个属性AJl ^ i Sm),按照其属性值拆分数据集;四、在数据子集中,重新计算各属性相关系数,根据各属性相关系数提升情况,判断该待选分层属性Ai是否为真正的分层属性;五、重复第三步和第四步,得到真正的分层属性簇;六、在分层属性簇中,依据贡献度进行从大到小排序,假设分层属性数目为k,则得到排序的属性IA1, A2, L AJ ;七、从{A1; A2, L AJ中依次取出分层属性,进行数据集的拆分,由分层属性簇形成层级决策树;八、在层级决策树叶子节点对应的数据子集中嵌套应用已有的挖掘方法,形成传统决策树群,得到完整的层叠决策树。有益效果本发明所述层叠决策树方法,通过“分层属性”的引入,甄别数据集中非线性条件属性关系的存在,并消除其影响,解决了现有决策树方法在非线性条件属性关系存在情况下难以取得理想效果的问题,同时层叠决策树方法具有较强的灵活性,不仅能用于这种复杂关系数据集,同样可以应用于常态数据集。SDT方法具有较强的灵活性,这体现在以下两点一、SDT方法不但可以甄别出非线性条件属性关系的存在并消除其负面影响,而且经层级处理之后的数据集群转化为了常态数据集合,从而可以选取已有挖掘方法嵌套应用其中,此时根据数据集的特点,选取合适的已有挖掘方法的灵活性很大,从而也使SDT方法具备了很强的灵活性。二、因为该方法可以嵌套调用已有决策树方法,假如经判断这种关系不存在,方法也会调用已有成熟方法进行常态的数据挖掘处理,所以该方法不仅能用于这种复杂关系数据集,同样可以应用于常态数据集。


图1. SDT方法流程图;图2.多个传统决策树方法准确率对比图;图3.多个传统决策树方法召回率对比 图4. SDT方法和传统决策树方法准确率对比图;图5. SDT方法和传统决策树方法召回率对比图。
具体实施例方式下面结合附图对本发明作进一步说明。图1是所述层叠决策树方法的流程图。实施方式的具体步骤包括一、枚举出所有非类别属性,假设总数为n,分别计算其与类别属性的相关系数;二、取出相关系数小于阈值的m个属性,放入待选分层属性簇中;对计算的相关系数进行排序,取出相关系数小于阈值的m个属性,这里的阈值是对相关系数的控制,设置太低就可能丢失具有隐蔽性的条件属性,而设置太高则会将过多的非条件属性放入待选分层属性簇,影响方法的效率,阈值的选取要根据具体数据集的特点进行调整,相关系数取值区间为W,l],在相关系数计算中,相关系数在0.3以下属于弱相关或无关,0.6以上属于强相关,中间区间属于中度相关。假如数据集中无关属性过多,可以适当减小阈值以达到过滤部分无关属性的目的,反之可以提高阈值以获取属性。另外,可以根据实验最终结果的优劣来不断调正该阈值以达到最理想的效果。在本实施方式中,该阈值设定为0.3。三、在待选分层属性簇中取出一个属性Ai (1 ^ i Sm),按照其属性值拆分数据集;四、在数据子集中,重新计算各属性相关系数,根据各属性相关系数提升情况,判断该待选分层属性Ai是否为真正的分层属性;在每个数据子集中,重新计算其余m-1个待选分层属性与类别属性之间的相关系数,如果存在明显的相关系数提升而且相关系数提升的属性数目突破提升阈值,则设定属性^m)为确定分层属性,否则不记录;这里的提升阈值是确定某属性是否作为真正的分层属性的判别值,每当数据子集中有属性的相关系数提升至0.3以上,就计数1次,第四步完成的时候,就形成了属性 AJl ^m)的最终的累加计数值,将该累加计数值与提升阈值进行比较。提升阈值的设定与具体的数据集有关,一般设定为待选分层属性值的个数。五、重复第三步和第四步,得到真正的分层属性簇;六、在分层属性簇中(假设数目为k),依据贡献度进行从大到小排序{A1; A2, L AJ ;本实施例中的贡献度为第四步中得到的属性的最终累加计数值。七、依次取出分层属性,进行数据集的拆分,由分层属性簇形成了层级决策树。其中A1作为第一层根属性,接着依据A2在第二层进行数据集拆分,如此循环完毕, 形成了层级决策树。八、在层级决策树叶子节点对应的数据子集中嵌套应用已有的挖掘方法,形成传统决策树群,运行完毕,形成完整的层叠决策树,用于对待处理数据集进行预测分类及数据挖掘。针对本实施方式采用的方法,通过存在非线性条件属性关系的数字图书馆馆藏数据集对层叠决策树方法的效果进行检验。为了检验方法的有效性,我们提前研究了馆藏属性之间的关系,其中用户分数作为预测的类别属性,非类别属性除了价格和时间外都是与分数有强相关的关系,而价格和时间属性是作为非线性条件属性关系的干扰存在,以此来检验SDT方法的使用效果。图2、图3是分别设定非线性条件属性在数据集中存在和不存在两种情况,运用传统的决策树方法进行数据预测,将结果进行分析,检验传统决策树方法对含有非线性条件属性的数据集的挖掘效果。图4、图5是利用现有决策树方法对原始的数据进行预测分析实验,然后利用SDT 方法对原始的数据进行预测分析实验,将这些方法在不同规模的数据集上进行对比,检验效果差别。通过图2,我们可以看到存在非线性条件属性时,传统决策树方法在准确率方面都低于70%,而去除非线性条件属性后,准确率有了明显的提升,但依然没有达到90% ;而通过图3,我们可以看到召回率的提升也是明显的,但即便如此,召回率还是很低的。这说明了传统决策树方法对含有非线性条件属性的数据集的挖掘效果不理想。由图2和图3中得知,常用决策树方法中J48方法的综合效果相对最好,因此就选用SDT方法和J48来做比较。从图4和图5中我们可以看到,在不同规模的数据集中,使用 SDT方法的效果相比J48都有较大的提升。这说明层叠决策树方法是行之有效的。应该理解的是,本实施例只是本发明实施的具体实例,不应该是本发明保护范围的限制。在不脱离本发明的精神与范围的情况下,对上述内容进行等效的修改或变更均应包含在本发明所要求保护的范围之内。
权利要求
1.一种层叠决策树构建方法,包括以下步骤一、计算当前数据集中所有非类别属性与类别属性的相关系数;二、取出相关系数小于阈值的m个属性,放入待选分层属性簇中;三、在待选分层属性簇中取出一个属性Ai(1 ( i ( m),按照其属性值拆分数据集;四、在数据子集中,重新计算各属性相关系数,根据各属性相关系数提升情况,判断该待选分层属性Ai是否为真正的分层属性;五、重复第三步和第四步,得到真正的分层属性簇;六、在分层属性簇中,依据贡献度进行从大到小排序,假设分层属性数目为k,则得到排序的属性IA1, A2, L AJ ;七、从{A1;A2, L AJ中依次取出分层属性,进行数据集的拆分,由分层属性簇形成层级决策树;八、在层级决策树叶子节点对应的数据子集中嵌套应用已有的挖掘方法,形成传统决策树群,得到完整的层叠决策树。
2.根据权利要求1所述的一种层叠决策树构建方法,其特征在于,步骤四种的判断方法为在每个数据子集中,重新计算其余m-1个待选分层属性与类别属性之间的相关系数, 得到相关系数提升到阈值以上的属性的累加计数值,如果累加计数值突破提升阈值,则设定属性Ai (1 ^m)为确定分层属性,否则不记录。
3.根据根据权利要求1所述的一种层叠决策树构建方法,其特征在于,所述提升阈值为待选分层属性值的个数。
4.根据根据权利要求1或2所述的一种层叠决策树构建方法,其特征在于,步骤二中所述的阈值为0.3。
5.根据根据权利要求1或2所述的一种层叠决策树构建方法,其特征在于,步骤六中的贡献度为步骤四中得到的累加计数值。
全文摘要
本发明涉及一种层叠决策树构建方法,包括以下步骤一、计算非类别属性与类别属性的相关系数;二、取出相关系数小于阈值的属性,放入待选分层属性簇中;三、取出一个属性,按照其属性值拆分数据集;四、在数据子集中,重新计算各属性相关系数,根据各属性相关系数提升情况判断是否为真正的分层属性;五、重复第三步和第四步,得到真正的分层属性簇;六、在分层属性簇中,依据贡献度从大到小排序;七、依次取出分层属性,进行数据集的拆分,形成层级决策树;八、在数据子集中嵌套应用已有的挖掘方法,得到完整的层叠决策树。本发明通过“分层属性”的引入,解决了现有方法在非线性条件属性关系存在情况下难以取得理想效果的问题,同时具有较强的灵活性。
文档编号G06F17/30GK102184210SQ20111011134
公开日2011年9月14日 申请日期2011年4月29日 优先权日2011年4月29日
发明者牛振东, 王维强, 赵育民 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1