第四章决策树建模第十组:郭浩韩学成何珺何军黄安迪§4.1数据分类介绍分类是数据挖掘的一个重要课题,它的目的是:构造一个分类函数或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个。数据分类的过程一般来说主要包含两个步骤第一步,建立一个描述已知数据集类别或概念的模型第二步,利用所获得的模型进行分类操作§4.1数据分类介绍-2第一步,建立一个描述已知数据集类别或概念的模型该模型是通过对数据库中各数据进行内容的分析而获得的。分类学习方法所使用的数据集称为训练样本集合,每一数据行都属于一个确定的数据类别,其类别值是由一个属性来描述的(被称为类别标记属性)。因此分类学习又可称为监督学习,它是在已知训练样本类别情况下,通过学习建立相应模型。而无监督学习则是在训练样本的类别与类别个数均未知的情况下进行的,如聚类分析。§4.1数据分类介绍-2第二步,利用所获得的模型进行分类操作首先对模型分类准确率进行估计。模型的准确性可以通过由该模型所正确分类的测试样本个数所占总测试样本的比例得到。即对于每一个测试样本,比较其已知的类别与学习所获模型的预测类别。如果一个学习所获模型的准确率经测试被认为是可以接受的,那么就可以使用这一模型对未来数据行或对象(其类别未知)进行分类,即利用学习所获得的模型进行预测,对未知类别的数据行或对象判断其类别(属性)取值。由训练数据产生分类规则由分类规则对新的样本数据进行分类§4.1决策树介绍-2常用的分类预测算法:决策树归纳分类贝叶斯分类基于规则的分类用后向传播分类遗传算法、粗糙集方法、模糊集方法§4.1决策树介绍-24.1.1决策树的基本知识决策树方法最早产生于20世纪60年代,是由Hunt等人研究人类概念建模时建立的学习系统CLS(conceptlearningsystem)。到了70年代末,J.RossQuinlan提出ID3算法,引进信息论中的有关思想,提出用信息增益(informationgain)作为特征判别能力的度量,来选择属性作为决策树的节点,并将建树的方法嵌在一个迭代的程序之中。当时他的主要目的在于减少树的深度,却忽略了叶子数目的研究。1975年和1984年,分别有人提出了CHAID和CART算法。1986年,J.C.Schlinner提出ID4算法。1988年,P.E.Utgoff提出ID5R算法。1993年,Quinlan本人以ID3算法为基础研究出C4.5算法。新算法在对预测变量的缺失值处理、剪枝技术、派生规则等方面作了较大的改进,C5.0是C4.5的商业改进版。例子关于上mooc的例子例子例子4.1.1决策树的基本知识决策树技术发现数据模式和规则的核心是归纳算法。归纳是从特殊到一般的过程。归纳推理从若干个事实表征出的特征、特性或属性中,通过比较、总结、概括而得出一个规律性的结论。归纳学习的过程就是寻找一般化描述(归纳断言)的过程。这种一般化描述能够解释给定的输入数据,并可以用来预测新的数据。归纳学习由于依赖于经验数据,因此又称作经验学习。4.1.1决策树的基本知识-2归纳学习存在一个基本假定:任一模型如果能在足够大的训练样本集中很好地逼近目标函数,则它也能在未见样本中很好地逼近目标函数。这个假定是归纳学习有效性的前提条件。归纳过程就是在描述空间中进行搜索的过程。4.1.1决策树的基本知识-2归纳可以分为自下而上、自上而下和双向搜索三种方式自下而上法一次处理一个输入对象,将描述逐步一般化,直到最终的一般化描述。自上而下法则对可能的一般化描述集进行搜索,试图找到一些满足一定要求的最优的描述。双向搜索方式则是这两者的结合。4.1.1决策树的基本知识-2先根据训练子集(又称为窗口)形成决策树,如果该树不能对所有对象给出正确的分类,那么选择一些例外加入到窗口中,重复该过程一直到形成正确的决策集。最终结果是“一棵树”,其叶节点是类名,中间节点是带有分枝的属性,该分枝对应该属性的某一可能值。4.1.1决策树的基本知识-2决策树通常有两大类型,分别为分类决策树和回归决策树。分类决策树用来实现对定类或定序目标变量的分类,回归决策树则完成对定距目标变量取值的预测。根据决策树各种不同的属性,可分为以下几类:决策树内节点的测试属性可能是单变量的,即每个内节点只包含一个属性;也可能是多变量的,既存在包含多个属性的内节点。测试属性的不同属性值的个数,可能使得每个内节点有两个或多个分枝。如果一棵决策树每个内节点只有两个分枝则称之为二叉决策树,如由CART算法生成的决策树。每个属性可能是值类型(连续值),也可能是枚举类型(离散值)。分类结果既可能是两类也有可能是多类,如果二叉决策树的结果只有两类,则称之为布尔决策树。4.1.1决策树的基本知识-2决策树学习是应用最广的归纳推理算法之一。它是一种逼近离散函数值的方法,分类精度高,操作简单,并且对噪声数据有很好的稳健性,因而成为比较实用且比较流行的数据挖掘算法。它的最大优点是,在学习过程中不需要使用者了解很多背景知识,只要训练样本集能够用“属性-值”的方式表达出来就能使用决策树学习算法来分类。4.1.1决策树的基本知识-2决策树方法的(相对)优点:可以生成可理解的规则数据挖掘产生的模式的可理解度是判别数据挖掘算法的主要指标之一,相比于一些数据挖掘算法,决策树算法产生的规则比较容易理解,并且决策树模型的建立过程也很直观。计算量较小。可以处理连续和集合属性。决策树的输出包含属性的排序生成决策树时,按照最大信息增益选择测试属性,因此,在决策树中可以大致判断属性的相对重要性。4.1.1决策树的基本知识-2决策树方法的缺点:对于具有连续值的属性预测比较困难。-对于顺序相关的数据,需要很多预处理的工作。当类别太多时,通常会增加误差分枝间的拆分不够平滑,进行拆分时,不考虑其对将来拆分的影响。缺值数据处理问题:因为决策树进行分类预测时,完全基于数据的测试属性,所以对于测试属性缺失的数据,决策树将无法处理。通常仅根据单个属性来分类:决策树方法根据单个属性对数据进行分类,而在实际的分类系统中,类的划分不仅仅与单个属性有关,往往与一个属性集有关。因此,将决策树算法推广到考虑多属性是一个有待研究的课题。4.1.1决策树的基本知识-2决策树学习算法适用的问题:样本可以用“属性-值”的方式来描述目标函数的输出值为离散值训练数据中允许包含有错误:样本的分类错误或属性值错误都允许训练数据中有样本属性值缺失§4.1决策树介绍-24.1.2决策树的应用和发展趋势决策树由于结构简单、效率高等优点而获得了广泛的应用。在国外,决策树在商业、工业、天文、医学、风险分析、社会科学和分类学等领域的应用已经取得了很好的经济和社会效益。国内目前有关决策树的研究多是围绕算法的改进以及决策树在商业、工业等领域的运用。在商业领域,决策树方法所能解决的典型商业问题有:客户关系管理、数据库营销、客户群体划分、交叉销售等市场分析行为,以及客户流失分析、客户信用计分及欺诈发现,等等。在工业领域,决策树可以用于故障诊断、工业生产过程控制等。在医学领域,决策树方法可用于疾病诊断治疔、基因与高分子序列分析、医院信息系统挖掘及医疗政策分析等。§4.2树的建模过程§4.2树的建模过程决策树算法通过构造决策树来发现数据中蕴涵的分类规则,包含许多种不同的算法,主要可以分为三类:(1)基于统计学理论的方法,以CART为代表,在这类算法中,对于非终端节点来说,有两个分枝;(2)基于信息理论的方法,以ID3算法为代表,此类算法中,非终端的节点的分枝由样本类别个数决定;(3)以AID,CHAD为代表的算法,在此类算法中,非终端节点的分枝数在2至样本类别个数范围内分布。这些算法在分类中应用的过程与思想基本上是一致的。如何构造精度高、规模小的决策树是决策树算法的核心内容§4.2树的建模过程—总体步骤决策树的构造基本可以分为如下两步:决策树的生成决策树的生成是指由训练样本数据集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要由实际的历史数据生成的、有一定综合程度的、用于数据分析处理的数据集。决策树的剪枝决策树剪枝是对上一阶段所生成的决策树进行检验、校正和修正的过程,主要是采用新的样本数据集(称为测试数据集)中的数据检验决策树生成过程中产生的初步规则,将那些影响预测准确性的分枝剪除。一般情况下,根据测试数据集中的每一元组对生成的规则进行预测准确性的检验,如果预测准确性过低,则将该分枝剪除。§4.2树的建模过程4.2.1数据要求(数据准备)在进行分类和预测挖掘之前,首先必须准备好有关挖掘数据。一般需要对数据进行以下预处理,以帮助提高分类和预测过程的准确性、有效性和可伸缩性。主要的工作包括:数据清洗相关分析数据转换4.2.1数据准备数据清洗这一数据预处理步骤,主要是帮助除去数据中的噪声,并妥善解决缺失数据问题,尽管大多数分类算法都包含一些处理噪声和缺失数据的方法,但这一预处理步骤可以有效减少学习过程可能出现相互矛盾情况的问题。4.2.1数据准备相关分析由于数据集中的许多属性与挖掘任务本身可能是无关的,例如记录银行贷款申请(单)填写时的星期数(属性),就可能与申请成功与否的描述无关。此外,有些属性也可能是冗余的。因此需要对数据进行相关分析,以使在学习阶段之前就消除无关或冗余属性。在机器学习中,这一相关分析步骤被称为属性选择(featureselection),包含与挖掘任务无关的属性可能会减缓甚至误导整个学习过程。在理想情况下,相关分析所花费的时间加上对削减后属性(子)集进行归纳学习所花费的时间之和,应小于从初始属性集进行学习所花费的时间,从而达到帮助改善分类效率和可扩展性的目的。4.2.1数据准备数据转换利用概念层次树,数据能够被泛化到更高的层次。概念层次树对连续数值的转换非常有效。例如,属性“收入”的数值就可以被泛化为若干离散区间,诸如低、中和高。类似地,像“街道”这样的属性也可以被泛化到更高的抽象层次,如泛化到城市。由于泛化操作压缩了原来的数据集,从而可以帮助有效减少学习过程所涉及的输入输出操作。此外,初始数据可能还需要规格化,特别是在利用距离计算方法实施各种学习方法时,如在基于示例学习方法中,规格化处理是不可或缺的重要处理操作。。§4.2树的建模过程4.2.2树的生长决策树算法是一种常用的数据挖掘算法,它是从机器学习领域中逐渐发展起来的一种分类函数逼近方法。决策树学习的基本算法是贪心算法,采用自上而下的递归方式构造决策树。Hunt等人于1966年提出的概念学习系统(conceptlearningsystem,CLS)是最早的决策树算法,以后的许多决策树算法都是对CLS算法的改进或由CLS衍生而来。目前,利用决策树进行数据分类的方法已经被深入研究,并且形成了许多决策树算法。§4.2树的建模过程决策树算法的分类模型是一棵有向无环树,下面将以二叉树为例说明基本的决策树算法。决策树的每个节点有0或2个子节点,除了根节点以外,每个节点有且仅有一个父节点。如果节点没有子节点,则称它为叶节点,否则称为内部节点。§4.2树的建模过程每个叶节点对应一个类标号,使用决策树对未知样本分类的类标号的值即为叶节点的值。每个内部节点都对应一个分枝方案,它包括用于节点分裂的属性A和分枝的判断规则q。训练样本的属性分为数值属性和分类属性,数值属性的取值范围是一个连续的区间,比如实数集R;而分类属性的取值范围则是离散值的集合S(A),比如性别属性的取值范围就是集合{男,女}。如果属性A是数值属性,那么q的形式是A≤v,其中v是属于A的取值范围的一个常量;如果A是分类属性,那么q的形式是A∈S’,其中S’是S(A)的子集。4.2.2树的生长决策树是“一棵树”,它的根节点是整个数据集合空间,每个分节点是对一个单一变量(属性)的测试,该测试将数据集合空间分割成两个或更多块。每个叶节点是属于单一类别的记录。首先,通过训练集生成决策树,再通过测试集对决策树进行修剪。决策树的功能是预测一个新的记录属于哪一类。4.2.2树的