基于关联规则的决策树算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于关联规则的决策树算法
汪海锐1,2,李 伟2
(1. 河海大学计算机与信息学院,江苏 常州 213022;2. 海军蚌埠士官学校,安徽 蚌埠 233012)
摘 要:通过将关联规则与决策树算法相结合,形成一种基于关联规则的决策树算法。该算法对不同时期同一事务的异种数据结构进行处理,得到一种可扩展的多分支分类决策树,使得改进后的决策树算法具有良好的可扩展性。该算法解决了传统分类算法在数据集维度发生变化时分类过程无法持续进行的问题。
关键词关键词::决策树;关联规则;分类算法;扩展性;组合算法
Decision Tree Algorithm Based on Association Rules
W ANG Hai-rui 1,2, LI Wei 2
(1. Institute of Computer & Information, Hohai University, Changzhou 213022, China; 2. Navy Petty Officer Academy, Bengbu 233012, China) 【Abstract 】This paper combines association rules and decision tree algorithm, and proposes a new decision tree classification based on association rule. The decision tree algorithm can handle dissimilar transaction data set record blocks which are same investigations conducted in different times to the same transactions. Through the decision tree algorithm, it can get a multi-crunodes decision tree, which has a good extendable performance. The algorithm solves the problem, which exists in the traditional classification, that is the traditional classification can not classify effectively and sustaine when dimensions of dataset change.
【Key words 】decision tree; association rule; classification algorithm; extendable performance; combining algorithm DOI: 10.3969/j.issn.1000-3428.2011.09.035
计 算 机 工 程 Computer Engineering 第37卷 第9期 V ol.37 No.9 2011年5月
May 2011
·软件技术与数据库软件技术与数据库·· 文章编号文章编号::1000—3428(2011)09—0104—03 文献标识码文献标识码::A
中图分类号中图分类号::TP311.12
1 概述
在数据挖掘的诸多分支中,分类具有极大的实际意义,
渐渐成为数据挖掘在生活中应用的一个重要课题,也使得各种分类算法成为当前的研究热点。在分类算法中,决策树算法[1-2]是一个极为经典的分类算法,有不少学者对其进行研究改进。对于现行的决策树算法,虽然不少学者从多个方面提出了改进,部分算法解决了其缺值处理、并行处理等局限性,但它们同时都具有一个不可回避的缺点:无法适应因采样数据时期不同而导致的属性值不一致问题。同时,传统的决策树算法对于很庞大的数据集而言是很不合适的,由此一些研究人员采用了不同的方法来处理这个问题,如并行的处理方法、多决策树合并算法来提高决策树算法的效率,为此,文献[3]对数据集进行划分,将大数据集划分成小的数据集,再
在小数据集上应用决策树算法,生成小的决策树,再将各个
小的决策树联合起来形成整个决策树。该方法虽然解决了大数据集的分类问题,但降低了分类的准确度。
本文结合关联规则与决策树算法形成一种新的分类算法,既具有决策树的优点,又具有关联规则可并行处理的性质。该算法主要着眼于现实世界的事务数据集是不断变化的,在数据的采集过程中可能会出现某段时间只采集某一事务数据的某些属性值样本,而后期的采集又增加了一些属性,从而形成了对同一事务不同时期的数据采集,构成异种数据集。在这些数据集中可能还会出现新增的类别,也可能会出现某些类别的消亡。在此情况下,按照传统的决策树算法,一旦某一时段的数据集采集完成就进行处理,则如果该时段之后的新增数据集增加了采样属性,那么旧的数据集就有可能会失效或无法使用。如果在新数据集采集完成之前已经对旧数据集进行处理,则造成前期所有的处理工作都无用。为此,
本文考虑利用不同时期的数据集,建立新的决策树算法,使决策树具备良好的伸缩性及可调整性。
2 基于关联规则的决策树算法
2.1
算法流程及简介
本文通过决策树算法与关联规则的结合形成基于关联规则的决策树算法,并对传统决策树算法与关联规则进行结合,形成新的分类算法,该算法同时具有决策树分类准确、易于理解等特点。本算法主要流程如图1所示。
第37卷 第9期 105
汪海锐,李 伟:基于关联规则的决策树算法 2.2 数据预处理
本算法的实质是组合算法,运用了决策树算法与关联规则。对于数值型的属性取值而言,虽然一些决策树算法可以自行处理,但对于关联规则而言,则是无法使用的。为了使关联规则也能应用这些数值型的属性值,必须对数值属性值进行离散化处理。
一般的处理方法有:数值属性静态离散化,数值属性动态离散化,基于特定的技术进行离散化[4]。在以上3种离散型方法中,数值属性的静态离散化是最简单的离散方法,也比较适合在本算法中应用。虽然在离散过程中对数据的精度略有丢失,但是通过业务理解过程可以更清楚地反映出事物在分类过程中的属性特点及其取值的界定范围。
2.3 决策树决策树的的建立
决策树的建立分为2步:(1)分割数据集;(2)通过原数据集生成决策树(也可以通过分割后的数据集左表与原数据集分别形成决策树,并采用决策树投票的方法得到最终的决 策树)。
当存在2个以上相异结构的对同一事物进行分类的事务数据集时,可以取相异数据集中属性值较少的数据集(早期数据集)作为D O ,属性值较多的数据集(新增数据集)为D N 。
如果仅有一个事务集,也可以按其属性值是否有缺失来进行分割。可以将整个数据集分割成2个部分,按属性值是否缺失来进行分割,没有缺失、为连续型值的用于建立决策树;有缺失的用于关联规则。同时保留原来的事务数据集。
当有多个相异事务数据集时,可以对各个事务数据集进行属性名提取,将多个事务数据集共有的属性名及其下的样本值单独分离出来形成D O ,而余下的数据集分别附带上原有的类别号,形成一个新事务数据集D N 。
输入 事务数据集D O ,D N 输出 事务数据集D NL ,D NR 过程:
(1)读入D O 、D N 数据集属性名,存作列表List O 、List N 。 (2)在List N 中去除List O 共有的属性名,形成新的属性名列表List NR 。
(3)按List NR 列表中所有的属性名从事务数据集D N 中提取出数据集形成事务数据集,并按原始顺序附带上原有的类别号,形成新的事务数据集D NR 。
(4)将事务数据集D N 减去事务数据集D NR ,附带上原有的类别号,形成新的事务数据集D NL 。
输入 事务数据集D O ,D NL 输出 原始属性决策树T O 过程:
(1)读入事务数据集D O 、D NL 。
(2)各自按决策树算法形成决策树T O 、T NL 。 (3)运用投票法则对决策树T O 、T NL 合并,形成决策树T O 。 2.4 扩展扩展树枝树枝树枝集的集的集的生成生成
在对新的事务数据集分割后形成的数据集(或在单个事务数据集的情况下将属性值不完备的数据集分割成的新数据集)上运用关联规则,得到对应的属性值与类别的频繁项集。由频繁项集得到关联规则表,再根据关联规则表得到树枝。
输入 事务数据集D NR
输出 树枝集T B ,树枝集节点元素列表ANVL 过程:
(1)对事务数据集D NR 应用关联规则,得到频繁项集,集
合内单个元素如下:
Attribe i :value i -Attribe j :value j -…-class k
(2)扫描频繁项集,并对属性名A i 中其属性取值V i 个数进行从大到小排序。
(3)依照生成的决策树T O 节点层次的先后顺序,将生成
决策树T O 中近根节点作为树枝的根节点;
未在决策树中出现的节点则依据其属性值个数来确定,其取值个数越多,越靠近根,由此形成树枝集T B 。
(4)提取树枝集中各树枝的根元素,并从频繁项中读出其取值,保存到ANVL 。
2.5 决策树嫁接点的选取
对关联规则建立的分类结果再次取出其属性值作为必选项,对原始数据集进行关联,寻找到形成树枝的嫁接点。
输入 事务数据集D N ,D NL ,D NR ,ANVL 输出 属性关联集AVTA 过程:
(1)读取ANVL 中各元素的值,并附带上类别号,依次在事务数据集D N 中寻找二项关联项。
(2)如果该关联值的属性名位于列表ANL NR ,则删掉该属性名。
(3)如果该关联值的属性名位于列表ANL O ,将ANVL 中的属性名和值以及关联后的属性名存入AVTA 。
2.6 决策树的决策树的嫁接嫁接嫁接及及剪枝 2.6.1 嫁接
输入 决策树T O ,树枝集T B ,属性关联集AVTA 输出 决策树T 过程:
(1)在决策树T O 上寻找AVTA 中寻找链表中所有的关联属性值名及其值,作为嫁接点。
(2)在嫁接点上加上树枝集T B ,形成新的决策树,如图2所示。
图2 决策树嫁接
2.6.2 剪枝
由于采用的是关联规则生成的树枝嫁接到原决策树上,对同一个分类树枝而言,可能存在着多个嫁接点,其中一些是正确的,而有一些则是无用的。基于关联规则生成的多分枝决策树必须进行剪枝。剪枝[5]的操作有如下方案:
嫁接前剪枝:在给决策树加入嫁接枝时,对嫁接点进行判定,决定是否继续扩展决策树,若停止扩展,则应去掉嫁接枝。当然也可能出现嫁接时原枝失效的情形,此时就应该去掉原枝加入嫁接枝。
嫁接后剪枝:对于生成良好的决策树,剪去那些在分类时极少有类别到达的树枝。
测试后剪枝:在决策树剪枝过程中,可以用叶节点来代替一个或多个子树,然后选择出现概率最高的类作为该节点的