资源描述:
《谢益辉:基于r软件rpart包的分类与回归树应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第22卷第5期统计与信息论坛2007年9月Vol.22No.5Statistics&InformationForumSept.,2007【统计应用研究】基于R软件rpart包的分类与回归树应用谢益辉(中国人民大学统计学院,北京 100872)摘要:对于许多分类和回归问题,二叉树(BinaryTree)提供了有趣而又形象化的方式来研究数据,它主要是按照一定的规则拆分自变量,而完成对因变量的合理分类,进一步可以对未知分类进行预测。在主要介绍递归分割(RecursivePartitioning)和回归树(RegressionTree)在R软件中应用的同时,对一前列腺癌数
2、据使用生存分析和分类与回归树相结合的方法做出分析,并得到了对于疾病诊断和预防较有指导意义的结论。关键词:递归分割;分类与回归树;生存分析;R软件中图分类号:C819 文献标识码:A 文章编号:1007-3116(2007)05-0067-04割的结果”可能是得到一些分类值,也可能是一些描一、分类与回归树简介述统计量或预测值。分类树用于因变量为分类数据“分类与回归树”早期被称为“决策树”,而决策的情况,树的末端为因变量的分类值;回归树则可以树的自动构建可以追溯到Morgan与Sonquist用于因变量为连续变量的情况,树的末端可以给出(1963)和Morgan与
3、Messenger(1973)的社会科学相应类别中的因变量描述或预测。在不引起混淆的研究。而统计学领域的开山之作当属Breiman等情况下,下文中“回归树”是指广义上的树方法,与[1]人,大约与此同时,树的方法也在各个领域被广“分类树”不加区分。泛使用,如机器学习[Quinlan,(1979)、(1983)、二、R软件中的回归树应用(1986)、(1993)]、工程学[Henrichon与Fu,(1969);Sethi与Sarvarayudu,(1982)]等。近年来,这些方法R是一种开源、免费的优秀统计软件,官方网站的发展越来越集中于机器学习领域,而统计学方面在
4、http://www.r-project.org,下载镜像(CRAN)的进展则相当少。软件方面,Therneau和Atkinson为http://cran.r-project.org;诸多统计学前沿方(1997)的rpart库(在S-Plus软件中,后被Ripley法都能以最快的速度在R中得到计算机实现,其中引入R软件的同名附加包rpart)提供了实现快速计rpart包是官方推荐的一个包,它的功能就是实现递[2]算以及封装好的一系列S函数。归分割和回归树。树的构建不妨可以看作是一个变量选择的过(一)rpart包介绍及主要函数说明程,所有问题基本可以归结为两点:选择
5、哪个变量作rpart不是R默认安装的包,使用时需要从为拆分(节点);以及如何拆分,即拆分的规则。在生CRAN上下载安装。其中包括的函数比较少,以成树之后,还面临着一个剪枝(prune)的问题。关于rpart()和prune()两个函数为主,前者是用来拟合分类与回归树的深入理论,可以参考Breiman等人一个树模型,后者用来根据“成本复杂性”对生成的的著作,在下文的应用部分中仅仅简略描述部分理树进行剪枝。之所以要剪枝,是因为若不加任何限论。制,最后生成的树必然能完全拟合原始数据,这样的递归分割,顾名思义也就是对变量进行逐层分树在实际应用中毫无意义,因为树的枝节太多,
6、而不隔,直到分割结果满足某种条件才停下来,这里“分能反映数据内在大规律;而从另一个极端情况来看,收稿日期:2007-03-03作者简介:谢益辉(1984-),男,湖北省宜昌人,硕士生,研究方向:统计软件,机器学习。67©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net统计与信息论坛若树的枝节太少,那么必然也会带来很大的预测误0),自变量有病人的年龄age、肿瘤等级grade(取值差。综合看来,要兼顾树的规模和误差的大小,因此1~4
7、)、处于G2阶段的瘤细胞比例等g2,关于数据通常采用一个叫“成本复杂性”的标准来对树进行限的详细描述参见。制,最后达到的目的是使误差和数的规模都尽可能因为这里用的是生存分析的方法,所以rpart()小。误差的计算通常基于交叉验证等方法,即用一函数中的因变量要使用生存分析对象(survivalob2部分训练样本建立模型,而剩下的样本用来作验证ject),可以用survival包中的Surv()函数生成,树模型看模型的预测误差大小。下面看R的函数实方法参数method则应该使用“exp”方法(若不指明,[3-4]现:程序也会自动挑选它)。首先产生一个树的拟合:11生成
8、树:rpa