数据挖掘——决策树分类算法 (1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
决策树分类算法
学号:*********** 学生所在学院:软件工程学院********
*******
教师所在学院:软件工程学院2015年11月
12软件1班
决策树分类算法
葛强强
12软件1班
摘要:决策树方法是数据挖掘中一种重要的分类方法,决策树是一个类似流程图的树型结构,其中树的每个内部结点代表对一个属性的测试,其分支代表测试的结果,而树的每个
叶结点代表一个类别。通过决策树模型对一条记录进行分类,就是通过按照模型中属
性测试结果从根到叶找到一条路径,最后叶节点的属性值就是该记录的分类结果。
关键词:数据挖掘,分类,决策树
近年来,随着数据库和数据仓库技术的广泛应用以及计算机技术的快速发展,人们利用信息技术搜集数据的能力大幅度提高,大量数据库被用于商业管理、政府办公、科学研究和工程开发等。面对海量的存储数据,如何从中有效地发现有价值的信息或知识,是一项非常艰巨的任务。数据挖掘就是为了应对这种要求而产生并迅速发展起来的。数据挖掘就是从大型数据库的数据中提取人们感兴趣的知识,这些知识是隐含的、事先未知的潜在有用的信息,提取的知识表示为概念、规则、规律、模式等形式。
分类在数据挖掘中是一项非常重要的任务。
分类的目的是学会一个分类函数或分类模型,把数据库中的数据项映射到给定类别中的某个类别。分类可用于预测,预测的目的是从历史数据记录中自动推导出对给定数据的趋势描述,从而能对未来数据进行预测。分类算法最知名的是决策树方法,决策树是用于分类的一种树结构。
1决策树介绍
决策树(decisiontree)技术是用于分类和预测
的主要技术,决策树学习是一种典型的以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的事例中推理出决策树表示形式的分类规则。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性判断从该节点向下的分支,在决策树的叶节点得到结论。所以从根到叶节点就对应着一条合取规则,整棵树就对应着一组析取表达式规则。
把决策树当成一个布尔函数。函数的输入为物体或情况的一切属性(property),输出为”是”或“否”的决策值。在决策树中,每个树枝节点对应着一个有关某项属性的测试,每个树叶节点对应着一个布尔函数值,树中的每个分支,代表测试属性其中一个可能的值。
最为典型的决策树学习系统是ID3,它起源于概念学习系统CLS,最后又演化为能处理连续属性的C4.5(C5.0)等。它是一种指导的学习方法,该方法先根据训练子集形成决策树。如果该树不能对所有给出的训练子集正确分类,那么选择一些其它的训练子集加入到原来的子集中,重复该过程一直到时形成正确的决策集。当经过一批训练实例集的训练产生一棵决策树,决策树可以根据属性的取值对一个未知实例集进行分类。使用决策树对实例进行分类的时候,由树根开始对该对象的属性逐渐测试其值,并且顺着分支向下走,直至到达某个叶结点,此叶结点代表的类即为该对象所处的类。
决策树是应用非常广泛的分类方法,目前有多种决策树方法,如ID3,C4.5,PUBLIC,
CART,CN2,SLIQ,SPRINT等。大多数已开发的决策树是一种核心算法的变体,下面先介绍一下决策树分类的基本思想决策树构造与剪枝,然后详细介绍ID3和C4.5算法及决策树算法的分析及改进等。
2决策树构造与剪枝
决策树分类算法通常分为两个步骤,决策树生成和决策树剪枝。
2.1决策树构造
决策树构造算法的输入是一组带有类别标记的例子,构造的结果是一棵二叉树或多叉树。二叉树的内部结点(非叶子结点)一般表示为一个逻辑判断,如形式为(ai=vi)的逻辑判断,其中ai是属性,vi是该属性的某个值。树的边是逻辑判断的分支结果。多叉树的内部结点是属性,边是该属性的所有取值,有几个属性值,就有几条边。树的叶子结点都是类别标记。
构造决策树的方法是采用自上而下的递归构造。以多叉树为例,它的构造思路是,以代表训练样本的单个结点开始建树,如果样本都在同一个类,则将其作为叶子结点,节点内容即是该类别标记。否则,根据某种策略选择一个属性,按照属性和各个取值,把例子集合划分为若干子集合,使得每个子集上的所有例子在该属性上具有同样的属性值。然后再依次递归处理各个子集。这种思路实际上就是“分而治之”的道理。二叉树同理,差别仅在于要如何选择好的逻辑判断。
构造好的决策树的关键在于如何选择好的逻辑判断或属性。对于同样的一组例子,可以有很多决策树符合这组例子。研究结果表明,一般情况下,树越小则树的预测能力越强。要构造尽可能小的决策树,关键在于选择合适的产生分支的属性。属性选择依赖于对各种例子子集的不纯度(Impurity)度量方法。不纯度度量方法包括信息增益(InformationGain)、信息增益比(GainRa-tio)、Gini-index、距离度量、x2统计、证据权重、最小描述长度等。不同的度量由不同的效果,特别是对于多值属性,选择合适的度量方法对于结果的影响是很大的。ID3,C4.5,C5.0算法使用信息增益的概念来构造决策树,而CART算法x则使用Gini-in-dex,其中每个分类的决定都与前面所选择的目标分类相关。
2.2决策树的剪枝
数据挖掘的对象是现实世界的数据,这些数据一般不可能是完美的,可能某些属性字段上缺值;可能缺少必须的数据而造成数据不完整;可能数据不准确、含有噪声甚至是错误的,所以要讨论噪声问题。基本的决策树构造算法没有考虑噪声,生成的决策树完全与训练例子拟合。有噪声情况下,完全拟合将导致过分拟合,即对训练数据的完全拟合反而不具有很好的预测性能。剪枝是一种克服噪声的技术,同时它也能使树得到简化而变得更容易理解。
1)两种基本的剪枝策略。
①前期剪枝(Forward-Pruning)是在树的生长过程完成前就进行剪枝。在树的生长过程中,决定是继续对不纯的训练子集进行划分还是停机。
例如某些有效统计量达到某个预先设定的阈值时,节点不再继续分裂,内部节点成为一个叶子节点。叶子节点取子集中频率最大的类作为自己的标识,或者可能仅仅存储这些实例的概率分布函数。前期剪枝会引起树在不完全成熟之前停止工作,即树可能在不应停止的时候而停止扩展,或称之为horizon效应,而且,选取一个适当的阈值是困难的。较高的阈值可能导致过分简化的树,而较低的阈值可能使树简化的太少。即使这样,预先修剪对大规模的实际应用还是值得研究的,因为它相当高效。人们有望在未来的算法中解决horizon效应。
②后期剪枝(Post-Pruning)是当决策树的生长过程完成之后再进行剪枝。它是一