版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、rpart包的rpart函数Iris数据集library(rpart) #加载rpart包head(iris) #看看iris数据集里有哪些变量iris以鸢尾花的特征作为数据来源,数据集包含150个数据,分为3类,每类50个数据,每个数据包含4个属性分别是花萼长度、花萼宽带、花瓣长度、花瓣宽度用gini度量纯度iris.rp1=rpart(Species.,data=iris,method=class,parms=list(split=gini) # rpart(formula, data, method, parms, .)得到决策树对象,其中(1)formula是回归方程的形式,yx1+x
2、2+,iris一共有5个变量,因变量是Species,自变量是其余四个变量,所以formula可以省略为Species.data是所要学习的数据集(3)method根据因变量的数据类型有如下几种选择:anova(连续型),poisson(计数型),class(离散型),exp(生存型),因为我们的因变量是花的种类,属于离散型,所以method选择class(4)parms可以设置纯度的度量方法,有gini(默认)和information(信息增益)两种。 plot(iris.rp1, uniform=T, branch=0, margin=0.1,main=Classification Tre
3、enIris Species by Petal and Sepal Length)#plot的对象是由rpart得到的决策树对象,可以把这课决策树画出来,其中uniform可取T,F两个值,T表示图形在空间上均匀分配branch刻画分支的形状,取值在0和1之间,branch=0是倒v型,branch=1是直角型,而当branch属于(0,1)时是梯形(3)margin刻画图的大小,margin越大,决策树越小,上述三幅图的margin=0.1,而当margin=1时,决策树变小了(4)main是图的标题,其中“n”是换行的意思text(iris.rp1, use.n=T, fancy=T, c
4、ol=blue)text(iris.rp1, use.n=T, fancy=F, col=blue)use.n=T,在每个节点处都会显示落在该节点的观测个数和对应的分类,use.n=F时就不显示观测个数了。fancy=T、F的区别见上图col=“blue”就是写在树上的信息的颜色。还有另一种画图函数library(rpart.plot)rpart.plot(iris.rp1,branch=0,branch.type=2,type=1,extra=1,shadow.col=gray,box.col=green,border.col=blue,split.col=red ,main=决策树)rpa
5、rt.plot(iris.rp1,branch=0,branch.type=0,type=1,extra=1,shadow.col=gray,box.col=green,border.col=blue,split.col=red, main=决策树)branch.type是分支的形状参数,branch.type=0时画出来的分支跟plot里的一样,就是一条线,而当branch.type=2时,分支的宽度是数据的标准差,branch.type=1时,是方差type:type=0只对叶子节点画圆圈。type=1对根节点和叶子节点画圆圈,分裂属性的值会写在节点框的上面。type=2时跟type=1近
6、似,但分裂属性的值会写在节点框的下面。type=3时每个根节点左右分支对应的属性的取值范围都标出来了(之前那些都只标了左分支的属性取值),并且只对叶子节点画圆圈。type=4时,跟type=3近似,但对叶子节点和根节点都画圆圈。extra是表示在节点处显示的额外信息的种类。当extra=0(缺省值)时,无额外信息。当extra=1,在节点处会显示落在该节点的观测个数和对应的分类(如上图)。当extra=2,在节点处会显示(在该点分类正确的个数/落在该节点的观测个数)。shadow.col=gray,box.col=green,border.col=blue,split.col=red分别是决策
7、树中节点框的阴影颜色、填充颜色、边框颜色、和分类属性的颜色用信息增益度量纯度iris.rp2=rpart(Species.,data=iris,method=class,parms=list(split=information)plot(iris.rp2, uniform=T, branch=0, margin=0.1,main=Classification TreenIris Species by Petal and Sepal Length)text(iris.rp2, use.n=T, fancy=T, col=blue)由上面两幅图可以看出,对于iris数据集,无论是用信息增益(inf
8、ormation)还是gini来选择分裂属性,得到的决策树都是一样的。决策树检验因为iris数据集比较简单,不需修树,我们可以把原来的150个样本随机分成学习集和测试集,用学习集来生成决策树,然后用测试集验证决策树的准确性。ind - sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0.3)iris.train=irisind=1, #生成训练集iris.test=irisind=2, #生成测试集iris.rp2=rpart(Species., iris.train, method=“class”) iris.rp3=predict(iris.
9、rp2, iris.test,-5, type=class) table(iris.test,5,iris.rp3) 准确率=1-2/43=95.35%,与原来的96%准确性几乎一样,所以这颗决策树有加好的泛化能力。我们再考虑另一个复杂一点的例子。pima=read.table(D:/Grace/pima.indians.diabetes3.txt,header=T)数据说明:通过7个变量(分别是怀孕次数npregnant,身体质量指数bmi,葡萄糖水平glucose,心脏血样diastolic.bp,皮下脂肪厚度skinfold thickness,遗传影响pedigree,年龄age)来判
10、断一个人是否患有糖尿病。set.seed(123)pima.rp =127.5(即128),则观测值落入左边的分支,否则落入右边的分支。rpart.plot(pima.rp,branch=0,branch.type=0,type=1,extra=1,shadow.col=gray,box.col=green,border.col=blue,split.col=red, main=决策树)图的解释:每个节点框中的数字是:(落在该节点有糖尿病的个数/正常的个数)每个节点框内的diabetic、normal表示该节点对应的分类属性printcp(pima.rp) #列出cp值cp: complexi
11、ty parameter复杂性参数,用来修剪树的当决策树复杂度超过一定程度后,随着复杂度的提高,测试集的分类精确度反而会降低。因此,建立的决策树不宜太复杂,需进行剪枝。该剪枝算法依赖于复杂性参数cp,cp随树复杂度的增加而减小,当增加一个节点引起的分类精确度变化量小于树复杂度变化的cp倍时,则须剪去该节点。故建立一棵既能精确分类,又不过度适合的决策树的关键是求解一个合适的cp值。一般选择错判率最小值对应的cp值来修树plotcp(pima.rp)pima.prune=prune(pima.rp,cp=pima.rp$cptablewhich.min(pima.rp$cptable,xerror
12、),CP)xerror:交叉验证(cross validation)错判率的估计xstd:交叉验证错判率的标准差建立树模型要权衡两方面问题,一个是要拟合得使分组后的变异较小,另一个是要防止过度拟合,而使模型的误差过大,前者的参数是CP,后者的参数是Xerror。所以要在Xerror最小的情况下,也使CP尽量小。Party包的ctree函数party包的处理方式:它的背景理论是“条件推断决策树”(conditional inference trees):它根据统计检验来确定自变量和分割点的选择。即先假设所有自变量与因变量均独立。再对它们进行卡方独立检验,检验P值小于阀值的自变量加入模型,相关性最
13、强的自变量作为第一次分割的自变量。自变量选择好后,用置换检验来选择分割点。用party包建立的决策树不需要剪枝,因为阀值就决定了模型的复杂程度。所以如何决定阀值参数是非常重要的(参见ctree_control)。较为流行的做法是取不同的参数值进行交叉检验,选择误差最小的模型参数。Ctree在Iris数据上的应用#先载入包party#构造分类树iris_ctree-ctree(Species.,data=iris)#画出分类树的图plot(iris_ctree)plot(iris_ctree,type=simple)#比较用分类树预测的结果和实际结果之间的区别table(predict(iris
14、_ctree),iris$Species)#由结果可以看出,由该决策树得到的结果的错误率为6/150=4%Ctree在diabetes数据上的应用#载入diabetes的数据data2=read.table(F:课件讨论班研一秋季学期我的讲稿pima.indians.diabetes3.txt,header=T)#观察diabetes的数据head(data2)#构造分类树pima_ctree=ctree(classnpregnant+glucose+diastolic.bp+skinfold.thickness+bmi+pedigree+age,data=data2)#画出分类树的图plot
15、(pima_ctree)plot(pima_ctree,type=simple)#计算错判率#由结果可以看出,由该决策树得到的结果的错误率为109/532=20.5%#能否修改参数改变模型?ctree_control(teststat = c(quad, max), testtype = c(Bonferroni, MonteCarlo, Univariate, Teststatistic), mincriterion = 0.95, minsplit = 20, minbucket = 7, stump = FALSE, nresample = 9999, maxsurrogate = 0,
16、 mtry = 0, savesplitstats = TRUE, maxdepth = 0)teststata character specifying the type of the test statistic to be applied.testtypea character specifying how to compute the distribution of the test statistic.mincriterionthe value of the test statistic (fortesttype = Teststatistic), or 1 - p-value (f
17、or other values oftesttype) that must be exceeded in order to implement a split.minsplitthe minimum sum of weights in a node in order to be considered for splitting.minbucketthe minimum sum of weights in a terminal node.stumpa logical determining whether a stump (a tree with three nodes only) is to
18、be computed.nresamplenumber of Monte-Carlo replications to use when the distribution of the test statistic is simulated.maxsurrogatenumber of surrogate splits to evaluate. Note the currently only surrogate splits in ordered covariables are implemented.mtrynumber of input variables randomly sampled as candidates at each node for random forest like algorithms. The defaultmtry
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 完善风险管理制度的作用(3篇)
- 实验室管理制度职责(3篇)
- 建筑外墙材料管理制度范本(3篇)
- 内业检验批培训
- 兽药门店销售培训课件
- 病房清洁消毒管理制度范本(3篇)
- 社卫机构健康管理制度(3篇)
- 美发店日常管理制度(3篇)
- 记录与档案管理制度(3篇)
- 车间原材料储存管理制度(3篇)
- 2024-2025学年广东省实验中学高一(上)期中语文试卷
- 成都大学《C语言程序设计》2023-2024学年第一学期期末试卷
- 维修服务人员培训
- 沪教版2024九年级上册化学各章节必背知识点复习提纲
- 医院物业保洁服务方案(技术方案)
- 《设备买卖合同模板》
- GB/T 4074.6-2024绕组线试验方法第6部分:热性能
- DB32-T 4111-2021 预应力混凝土实心方桩基础技术规程
- 不同时代的流行音乐
- DB31-T 1448-2023 监狱场所消防安全管理规范
- 医疗卫生机构6S常态化管理打分表
评论
0/150
提交评论