第10章 决策树教学课件R语言数据分析与挖掘.pptx
《第10章 决策树教学课件R语言数据分析与挖掘.pptx》由会员分享,可在线阅读,更多相关《第10章 决策树教学课件R语言数据分析与挖掘.pptx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 决策树教学课件R 语言数据分析与挖掘目录PAGE决策树概述01202决策树基本原理010103决策树R实现PAGE决策树概述301PAGE4决策树概述 决策树呈树形结构,是一种基本的回归和分类方法。决策树的基本思想由两个关键步骤组成:(1)第一步对特征空间按变量对分类效果影响大小进行变量和变量值选择;(2)第二步用选出的变量和变量值对数据区域进行矩阵划分,在不同的划分区间进行效果和模型复杂性比较,从而确定最合适的划分,分类结果由最终划分区域的优势类确定。决策树主要用于分类,也可用于回归,回归与分类的主要差异在于选择变量的标准不是分类的效果,而是预测误差。当决策树的输出变量(因变量)是
2、分类变量时,叫分类树,而当决策树的输出变量为连续变量时称为回归树。虽然回归树的因变量是连续变量,但叶节点数据是有穷的,因此输出的值也是在这个叶节点上的观测值平均。回归树不用假定经典回归中的诸如独立性、正态性、线性等特性,自变量无论是数量变量还是定性变量都同样适用。和经典回归不同,决策树不需要对总体进行分布的假设。而且,决策树对于预测很容易解释,这是其优点。此外,决策树很容易计算,但有必要设定不使其过分生长的停止规则或者修剪方法。决策树的一个缺点是每次分叉只和前一次分叉有关,而且并不考虑对以后的影响。因此,每个节点都依赖于前面的节点,如果一开始的划分不同,结果也可能很不一样。4R 语言数据分析与
3、挖掘(微课版)PAGE5决策树生成 从理论上概述决策树的构建过程,这一过程包括如下四个步骤。5R 语言数据分析与挖掘(微课版)1.决策树的生成这一过程将初始的包含大量信息的数据集,按照一定的划分条件逐层分类至不可再分或不需再分,充分生成树。具体的,在每一次分类中:先找出各个可以作为分类变量的自变量所有可能的划分条件,再对每一个自变量,比较在各个划分条件下所得分支的差异大小,选出使得分支差异最大的划分条件作为该自变量的最优划分;再将各个自变量在最优划分下所得分支的差异大小进行比较,选出差异最大者作为该节点的分类变量,并采用该变量的最优划分。2.生成树的剪枝利用决策树算法构建了初始的树之后,为了有
4、效地分类,还要对其进行剪枝。这是因为,由于数据表示不当、有噪声等原因,会造成生成的决策树过大或过度拟合。因此为了简化决策树,寻找一颗最优的决策树,剪枝是一个必不可少的过程。不同的算法,其剪枝的方法也不尽相同。常用的剪枝方法有预剪枝和后剪枝两种。例如CHILD和C5.0采用预剪枝,CART则采用后剪枝。(1)预剪枝:是指在构建决策树之前,先指定好生长停止准则(例如指定某个评估参数的阈值),此做法适合应用于大规模问题。(2)后剪枝:是指待决策树完全生长结束后,再根据一定的规则,剪去决策树中那些不具一般代表性的叶子节点或者分支。3.生成规则在生成一颗最优的决策树之后,就可以根据这颗决策树来生成一系列
5、规则。这些规则采用“if,then”的形式。从根节点到叶子节点的每一条路径,都可以生成一条规则。这条路径上的分裂属性和分裂谓词形成规则的前件(if部分),叶子节点的类标号形成规则的后件(then部分)。4.模型性能评估及预测建立好模型后,可以利用测试数据对生成的决策树进行测试,常用混淆矩阵和预测误差率来验证模型的性能。选择最优模型后,就可以对新数据进行预测分类。PAGE6决策树的优缺点6R 语言数据分析与挖掘(微课版)接下来,让我们总结下决策树算法的优点:(1)决策树算法易理解,机理解释起来简单。(2)决策树算法的时间复杂度较小,为用于训练决策树的数据样本的对数。(3)决策树算法既能用于分类也
6、能用于回归。(4)能够处理多输出的问题。(5)对缺失值不敏感。(6)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。当然,决策树算法也不是没有缺点的,主要缺点如下:(1)对连续型的因变量比较难预测,因为其是利用叶节点样本的平均值计算得到。(2)容易出现过拟合。(3)当类别太多时,错误可能就会增加的比较快。(4)在处理特征关联性比较强的数据时表现得不是太好。(5)对于各类别样本数量不一致的数据(类失衡问题),在决策树当中,信息增益的结果偏向于那些具有更多数量的特征。PAGE决策树基本原理702PAGE8决策树基本原理8R 语言数据分析与挖掘(微课版)决策树算法
7、在分类、预测、规则提取等领域有着广泛应用。在20世纪80年代初期,J.Ross Quinlan提出了ID3算法(Iterative Dichotomiser 3,迭代二叉树3代)以后,决策树在数据挖掘、机器学习领域得到极大的发展。Quinlan后来又提出了C4.5,随后又发布了C5.0算法。1984年,多位统计学家在著名的Classification and regression tree一书中提出了CART算法。ID3和CART几乎同时被提出,但都采用类似的方法从训练样本中学习决策树。决策树算法 算法描述ID3算法其核心是在决策树的各级分裂节点上,使用信息增益作为分裂变量的选择标准,来帮助确
8、定生成每个节点时所应采用的合适自变量C4.5算法C4.5决策树算法相对于ID3算法的重要改进是使用信息增益率来选择节点属性。C4.5算法可以克服ID3算法存在的不足:ID3算法只适用于离散的自变量,而C4.5算法既能处理离散的自变量,也可以处理连续的自变量C5.0算法C5.0是C4.5应用于大数据集上的分类算法,主要在执行效率和内存使用方面进行了改进。适用于处理大数据集,采用Boosting方式提高模型准确率,又称为BoostingTrees。CART算法CART决策树是一种非常有效的非参数分类和回归方法,通过构建树、修剪树、评估树来构建一个决策树。当因变量是连续型时,该树称为回归树;当因变量
9、是离散型时,该树称为分类树。CART算法也使用目标变量的纯度来分裂决策节点,只是它使用的分裂度量是Gini增益。需要注意的是,CART内部只支持二分叉树。条件推理决策树算法条件推理决策树算法的分裂方式不再以自变量分裂后的目标变量的纯度(如C4.5和CART算法)为分裂度量指标,而是以自变量与目标变量的相关性(一些统计检验)为分裂度量指标。后来又发展出快速无偏有效统计树(QUEST算法)。PAGE9ID3 算法基本原理9R 语言数据分析与挖掘(微课版)PAGE10ID3 算法流程10R 语言数据分析与挖掘(微课版)决策树是一种贪心算法,它以从上到下递归的方式构建决策树,每次选择分裂数据的变量都是
10、当前的最佳选择,并不关心是否达到全局最优。PAGE11C4.5 算法11R 语言数据分析与挖掘(微课版)PAGE12CAR T 算法12R 语言数据分析与挖掘(微课版)PAGE13ID3、C4.5 和CAR T 算法比较13R 语言数据分析与挖掘(微课版)算法 支持模型 树结构 特征选择 连续值处理 缺失值处理 剪枝ID3 分类 多叉树 信息增益 不支持 不支持 不支持C4.5 分类 多叉树 信息增益比 支持 支持 支持CART 分类、回归 二叉树基尼系数,均方差支持 支持 支持PAGE决策树R 实现1403PAGE15决策树R 语言实现15R 语言数据分析与挖掘(微课版)各种决策树算法在R语
11、言均有对应的函数实现。可以通过RWeka扩展包中的J48()函数来调用weka的C4.5算法;通过C50扩展包中的C5.0()函数实现C5.0算法;通过rpart扩展包中的rpart()函数实现CART算法;通过party扩展包中的ctree()函数实现条件推理决策树算法。1.J48()函数J48(formula,data,subset,na.action,control=Weka_control()其中,formula为建模公式;data为包含formula参数变量的数据框;subset为用于data中选取部分样本;na.action为缺失数据的处理方法,默认是删除目标变量的数据,保留自变量
12、的数据;control为C4.5算法的参数,使用Weka_control()函数进行设置。2.C5.0()函数C5.0(x,y,trials=1,rules=FALSE,weights=NULL,costs=NULL,.)其中,x为一个包含训练数据的自变量;y为包含训练数据的因变量;trials为一个可选值,用于控制自助法循环的次数(默认为1);costs为一个可选矩阵,用于给出与各种类型错误相对应的成本。3.rp ar t()函数rpart(formula,data,subset,na.action=na.rpart,method,parms,control,)其中,formula为建模公式
13、;data为包含formula参数变量的数据框;subset为用于data中选取部分样本进行建模;na.action为缺失数据的处理方法,默认是删除目标变量的数据,保留自变量的数据;method为变量分割方法,该参数4种取值:连续型对应anova,分类型(因子)对应class,计数型对应poisson(泊松),生存分析型对应exp。一般情况下,函数会自动检验目标变量的数据类型,自动匹配合适的取值;control为模型建立时用于停止分裂的一些参数,其值是rpart.control函数的输出对象。4.ctr ee()函数ctree(formula,data,subset=NULL,weights=
14、NULL,control=ctree_control(),)其中,formula为建模公式;data为包含formula参数变量的数据框;subset为用于data中选取部分样本进行建模;control为模型建立时用于停止分裂的一些参数,其值是ctree.control函数的输出对象。PAGE16C5.0 案例16R 语言数据分析与挖掘(微课版)#install.packages(C50)library(C50)tree_mod tree_modCall:C5.0.default(x=iris,c(Petal.Length,Petal.Width),y=iris$Species)Classif
15、ication TreeNumber of samples:150 Number of predictors:2 Tree size:4 Non-standard options:attempt to group attributes summary(tree_mod)#查看详细信息Decision tree:Petal.Length 1.9:.Petal.Width 1.7:virginica(46/1)Petal.Width=1.7:.Petal.Length 4.9:virginica(6/2)Evaluation on training data(150 cases):Decision
16、 Tree-Size Errors 4 4(2.7%)(a)(b)(c)plot(tree_mod)#树模型可视化PAGE17C5.0 案例-提高模型性能17R 语言数据分析与挖掘(微课版)C5.0算法对C4.5算法改进的一个优点就是通过加入自适应增强(adaptive boosting)算法。众所周知,决策树容易造成过拟合。故以决策树作为基分类器,生成许多决策树,然后这些决策树通过投票表决的方式为每个样本选择最佳的分类。由于boosting算法可以更广泛地应用与任何机器学习算法,所以在下一小节将介绍该算法。C5.0()函数的参数trials,可以很轻松地将boosting算法添加到C5.0决
17、策树中。与更多统计方法(例如随机梯度增强)相比,该方法的模型与AdaBoost相似。data(churn)#构建模型 treeModel treeModel1#查看模型对训练数据集的混淆矩阵(t0(t1 cat(普通模型对训练集的预测准确率:,+paste0(round(sum(diag(t0)*100/sum(t0),2),%)普通模型对训练集的预测准确率:95.92%cat(增加boosting的模模型对训练集的预测准确率:,+paste0(round(sum(diag(t1)*100/sum(t1),2),%)增加boosting的模模型对训练集的预测准确率:98.08%增加boosti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 决策树教学课件R语言数据分析与挖掘 10 决策树 教学 课件 语言 数据 分析 挖掘
限制150内